Anda di halaman 1dari 253

Robotika: Teori dan Aplikasi

Perpustakaan Nasional: Katalog Dalam Terbitan


ISBN: 978-979-1421-13-3
Cetakan 1, Desember 2012

Penulis
Wisnu Jatmiko
Petrus Mursanto
M Iqbal Tawakal
M Sakti Alvissalim
Abdullah Hafidh
Enrico Budianto
M Nanda Kurniawan
Kharda Ahfa
Ken Danniswara
M Anwar Masum
Indra Hermawan
Grafika Jati

Desain Sampul
Muhamad Fajar

Hak Cipta
Seluruh isi buku dan sampul merupakan hak cipta Fakultas Ilmu Komputer
Universitas Indonesia

Kata Pengantar
Puji syukur kami panjatkan ke hadirat Allah SWT yang atas rahmat,
karunia, dan hidayah-Nya penulis berhasil menyelesaikan buku ini
dengan judul Robotika: Teori dan Aplikasi. Buku ini berisi
penjelasan mengenai aplikasi-aplikasi robotika di berbagai bidang yang
sangat dekat dan menyentuh serta berhubungan dengan kebutuhan
manusia. Penjelasan tersebut antara lain penggunaan mobile robot
untuk mengatasi lumpuhnya jaringan komunikasi di daerah bencana,
penggunaan robot untuk bermain bola dan meniru gerakan manusia,
serta penggunaan robot penjelajah udara untuk keperluan penjejakan
objek dan juga pembentukan formasi kawanan. Ketiga contoh
tersebut adalah bentuk aplikasi robot yang akan dijelaskan di dalam
buku ini. Semua ini bertujuan untuk memberikan gambaran kepada
pembaca betapa penting dan berharganya teknologi robotika dalam
kehidupan manusia.
Buku ini juga juga buku ketiga dari seri buku robotika yang diproduksi
di lab Architecture and High Performance Computing, Fakultas Ilmu
Komputer Universitas Indonesia. Dua buku sebelumnya adalah
Swarm Robot dalam Pencarian Sumber Asap dan Robot Lego
Mindstorm: Teori dan Praktek. Diharapkan buku ketiga ini dapat
melanjutkan semangat yang diusung dari kedua buku sebelumnya dan
memberikan sumbangan keilmuan di bidang robotika Indonesia.
Bidang robotika terus berkembang dengan cepat dan penggunaannya
di tengah masyarakat pun semakin mewabah. Buku ini diharapkan
dapat memberikan gambaran terbaru mengenai teknologi robotika
terbaru yang dikembangkan di Indonesia. Penguasaan teknologi
robotika terbaru harus dilakukan apabila Indonesia ingin tetap
bersaing secara global dengan negara-negara maju lainnya yang
memiliki tingkat penetrasi teknologi robotika yang tinggi, seperti
Jepang, Jerman, dan Amerika Serikat.

Penulisan buku ini sendiri didukung oleh program Hibah Sinas tahun
2012-2014 (Kementerian Riset dan Teknologi RI) dengan judul
Autonomous
Quadcopter
Swarm
Robots
for
Military
Reconnaissance and Intelligence Gathering, program Student Project
IMHERE Fasilkom UI 2012 (Kementerian Pendidikan dan Kebudayaan
RI) dengan judul Imitasi Gerak Manusia pada Robot Humanoid
Pemain Bola, dan Hibah Riset Kolaborasi Internasional UI tahun 2011
dengan judul Autonomous Telecommunication Networks Coverage
Area Expansion With Mobile Robot In Disaster Areas. Tanpa bantuan
dana dari hibah-hibah tersebut, penelitian pendahuluan dan penulisan
buku ini tidak mungkin bisa diselesaikan. Atas bantuan dana tersebut,
penulis mengucapkan terima kasih yang sebesar-besarnya.
Terima kasih kami sampaikan juga kepada semua pihak yang telah
memberikan dukungan selama pembuatan buku ini, terutama dari
pihak Kementrian Pendidikan dan Kebudayaan, Kementrian Riset dan
Teknologi, dan Fakultas Ilmu Komputer UI. Selain itu, tidak lupa pula
kepada seluruh mahasiswa di Laboratorium Computer Networks,
Architecture & High Performance Computing yang telah banyak
membantu secara formal maupun informal sehingga riset ini dapat
berjalan dengan segala kelebihan dan kekurangannya.
Tak ada gading yang tak retak. Penulis juga menyadari bahwa buku
yang ditulis ini masih memiliki kekurangan di sana sini. Oleh karena
itu, kritikan dan masukan dari pembaca sangat diharapkan untuk
pengembangan kualitas dari buku ini dan buku-buku selanjutnya.
Semoga bantuan dan kerja sama ini dapat memberi kontribusi
perkembangan yang berarti bagi keilmuan khususnya di bidang ilmu
komputer dan robotika di Indonesia.
Depok, Universitas Indonesia
Desember 2012

Tim Penulis
4

Sistematika Penulisan Buku


Buku ini ditulis dengan urutan sebagai berikut:

Bab 1, Apa Itu Robot?


Bab ini menjelaskan mengenai teknologi robot dan mengapa
robot dapat membantu manusia dalam kehidupan sehari-hari.
Di dalamnya juga dibahas jenis-jenis robot, dan penelitianpenelitian terkini tentang aplikasi robotika.

Bab 2, Penerapan Robot Beroda


Bab ini menjelaskan penggunaan robot beroda untuk
mengatasi masalah terputusnya komunikasi ketika terjadi
bencana alam pada suatu daerah. Di dalamnya akan dibahas
tiga pendekatan yang digunakan, yaitu penggunaan simulasi
3D, implementasi dengan riil robot gempa bumi, dan metode
routing protocol untuk pemulihan jaringan telekomunikasi.

Bab 3, Penerapan Robot UAV


Bab ini menjelaskan mengenai robot dalam bentuk helikopter
yang memiliki 4 buah rotor dan memiliki kemampuan untuk
bermanuver di udara. Robot ini dipergunakan untuk
memulihkan jaringan telekomunikasi, pendeteksian dan
pelacakan topi, dan diujikan untuk membentuk formasi robot
untuk penjelajahan ruang.

Bab 4, Penerapan Robot Berkaki


Bab ini menjelaskan mengenai robot berkaki yang dirancang
berbentuk humanoid. Di dalamnya juga dijelaskan sisi aplikasi
robot humanoid untuk pertandingan robot soccer dan
mengimitasi gerak manusia dari tangkapan sensor Kinect.

Tujuan
Tujuan penulisan buku ini adalah sebagai dokumentasi dari penerapan
aplikasi robot yang telah dilakukan pada berbagai riset yang telah
dilakukan sebelumnya. Buku ini juga ditujukan untuk menjelaskan
kegunaan teknologi robot untuk berbagai bidang di masyarakat.

Daftar Isi
Kata Pengantar..................................................................................................3
Sistematika Penulisan Buku ..............................................................................5
Daftar Isi............................................................................................................7
Daftar Gambar ................................................................................................11
Daftar Tabel ....................................................................................................16
BAB 1| Apa Itu Robot......................................................................................17
1.1

Definisi Robot..................................................................................18

1.2

Sejarah Perkembangan Robotika....................................................21

1.3

Jenis Robot......................................................................................25

1.3.1

Klasifikasi Robot Industri.........................................................25

1.3.2

Klasifikasi Robot Berdasarkan Kemampuan Gerak.................26

1.3.3

Klasifikasi Robot Bergerak Berdasarkan Lokomotif Gerak......27

1.3.4

Klasifikasi Robot Bergerak Berdasarkan Medan Jelajah .........39

1.4

Penelitian Terkini Bidang Robotika.................................................41

1.4.1

Kendaraan Darat Tanpa Awak ................................................41

1.4.2

Robot Ikan Pendeteksi Polusi..................................................42

1.4.3

Robot Medis............................................................................43

1.4.4

Komputasi Robot Berbantuan Cloud ......................................46

1.5

Susunan Buku..................................................................................49

BAB 2| Penerapan Robot Beroda ...................................................................51


2.1

Latar Belakang dan Kegunaan.........................................................51

2.2

Robot Beroda Al-Fath .....................................................................54

2.2.1

Anatomi...................................................................................54

2.2.2

SRF08.......................................................................................55

2.2.3

CMPS03...................................................................................55

2.2.4

Controller ................................................................................55

2.2.5

TraxterII Brush DC Gearhead Motor (plus Encoder) ...............56

2.3
Simulasi Pembentukan Jaringan Komunikasi Menggunakan Open
Dynamic Engine ..........................................................................................56
7

2.3.1

Position by Line....................................................................... 57

2.3.2

Extended Position by Line ....................................................... 58

2.3.3

Self Deployment...................................................................... 60

2.3.4

Open Dynamic Engine(ODE) ................................................... 61

2.3.5

Pemodelan Al-Fath dengan Open Dynamic Engine ................ 63

2.3.6

Simulasi Collision Detection.................................................... 65

2.3.7

Simulasi Collision Avoidance................................................... 66

2.3.8

Simulasi Path Planning ........................................................... 67

2.3.9

Simulasi Position by Line......................................................... 69

2.3.10

Simulasi Extended Position by Line......................................... 75

2.3.11

Simulasi Self Deployment ....................................................... 77

2.4

Implementasi Riil Robot ................................................................. 80

2.4.1

Particle Swarm Optimization.................................................. 81

2.4.2

Dead Reckoning ...................................................................... 82

2.4.3

Perangkat Komunikasi Robot Al-Fath..................................... 84

2.4.4

Implementasi Arsitektur Mobile Robot .................................. 86

2.4.5

Perangkat Lunak ..................................................................... 88

2.4.6
Implementasi Algoritma Sink Localization dengan Particle
Swarm Optimization............................................................................... 94
2.4.7

Implementasi Algoritma Position by Line Pada Robot Al-Fath96

2.4.8

Hasil Implementasi ................................................................. 96

2.5

Protokol Routing............................................................................. 99

2.5.1

Mobile ad-hoc Network ........................................................ 100

2.5.2

Ad-hoc Routing Protocol....................................................... 102

2.5.3

Macam-Macam Routing Protocol Algorithm ....................... 103

2.6

Kesimpulan dan Pengembangan Lebih Lanjut ............................. 104

BAB 3| Penerapan Robot UAV ..................................................................... 107


3.1

Desain Robot Quadcopter ............................................................ 110

3.1.1

Komponen Pembentuk Quadcopter .................................... 110

3.1.2

Prinsip kerja quadcopter ...................................................... 112

3.1.3

Kemampuan Quadcopter......................................................114

3.1.4

AR.Drone...............................................................................115

3.2

Penerapan UAV untuk Pemulihan Jaringan Komunikasi..............117

3.2.1

Perancangan Agen ................................................................118

3.2.2

Perancangan Sistem Secara keseluruhan .............................118

3.2.3

Proses implementasi.............................................................119

3.3

Penerapan UAV Sebagai Pendeteksi dan Pelacak Objek ..............124

3.3.1

Proses Pengerjaan Tanpa Menerbangkan AR-Drone............128

3.3.2

Proses Pengembangan dengan Menerbangkan AR.Drone...136

3.4
Penerapan UAV untuk Pembentukan Formasi UAV Dalam
Mengeksplorasi Ruang..............................................................................140
3.4.1

Piranti lunak V-REP ...............................................................142

3.4.2

Melengkapi Model Quadcopter ............................................144

3.4.3

Implementasi Algoritma pada Proses simulasi .....................147

3.4.4

Uji Coba dan Evaluasi Hasil Simulasi .....................................162

3.5

Kesimpulan dan Pengembangan Lebih Lanjut..............................166

BAB 4| Penerapan Robot Berkaki.................................................................169


4.1

4.1.1

Perangkat Keras Robot Humanoid........................................170

4.1.2

Perangkat Lunak Robot Humanoid .......................................176

4.2

Robot Humanoid untuk Pertandingan Soccer...............................182

4.2.1

Tata Cara Perlombaan Robot Humanoid Soccer...................182

4.2.2

Strategi dalam Pertandingan ................................................186

4.2.3

Implementasi Kecerdasan Robot Soccer...............................189

4.3

Robot Humanoid untuk Imitasi Gerak Manusia............................200

4.3.1

Microsoft Kinect....................................................................201

4.3.2

Arsitektur Robot Imitasi........................................................202

4.3.3

Proses Motion Capture hingga Pemetaan Gerakan..............204

4.3.4

Detail Implementasi Robot Imitasi .......................................211

4.4

Desain Robot Humanoid ...............................................................170

Kesimpulan dan Pengembangan Lebih Lanjut..............................231

Daftar Pustaka .............................................................................................. 233


Glosarium ..................................................................................................... 237
Daftar Indeks ................................................................................................ 243
Profil Penulis................................................................................................. 247

10

Daftar Gambar
Gambar 1.1. Karakteristik Robot ....................................................................20
Gambar 1.2. a. Robot Band b. Robot Leonardo............................................22
Gambar 1.3. Robot Tesla ................................................................................23
Gambar 1.4. Robot Asimo...............................................................................24
Gambar 1.5. Sejarah Perkembangan Robot ...................................................24
Gambar 1.6. Robot Arm Milik KUKA ...............................................................27
Gambar 1.7. Mekanisme Lokomotif pada Makhluk Hidup.............................28
Gambar 1.8. Jenis-jenis Roda..........................................................................30
Gambar 1.9. Sistem Differential Steering .......................................................32
Gambar 1.10. Konfigurasi Roda Dua, Atas (parallel) Bawah (seri) .................32
Gambar 1.11. Konfigurasi Sistem Kemudi Beroda Tiga ..................................33
Gambar 1.12. Konfigurasi Sistem Kemudi Beroda Empat ..............................34
Gambar 1.13. Sistem suspensi rantai pada tank. (1= roda belakang bermotor,
2=rantai yang membalut roda, 3=roller untuk memudahkan rantai berputar,
4= roda depan bermotor, 5=roda netral, 6=idler) ..........................................35
Gambar 1.14. Teletank, tank tanpa awak yang dikontrol dari jauh. Aktif
dipergunakan oleh Uni Sovyet pada masa perang dunia kedua. ...................35
Gambar 1.15. Replikasi Robot GE pada Musium Transportasi US Army ........36
Gambar 1.16. Monopod .................................................................................37
Gambar 1.17. Model 5 Tautan........................................................................38
Gambar 1.18. HSV Swift (Courtesy of Bluefin Robotics Corporation) .............40
Gambar 1.19. Robot MQ-9 Reaper .................................................................41
Gambar 1.20. Lapisan Arsitektur RoboEarth ..................................................48
Gambar 1.21. Robot Pemulihan Jaringan Komunikasi....................................49
Gambar 1.22. Robot UAV................................................................................50
Gambar 1.23. Robot Humanoid ......................................................................50
Gambar 2.1. Dampak akibat bencana gempa bumi dan gunung meletus .....52
Gambar 2.2. Contoh menara BTS ...................................................................53
Gambar 2.3 Tampilan robot Al-Fath dan sensor-sensornya...........................54
Gambar 2.4 SRF08 dipasang di Al-Fath...........................................................55
Gambar 2.5 CMPS03 yang dipasang di robot Al-Fath.....................................55
Gambar 2.6 Motor pada robot Al-Fath...........................................................56
Gambar 2.7. Ilustrasi algoritma Position by Line (Pambudi 2009)..................58
Gambar 2.8. Ilustrasi pembentukan jalur pada algoritma Extended Position by
Line..................................................................................................................60
Gambar 2.9. Diagram alur dari arsitektur simulasi Open Dynamic Engine (R.C
Kooijman 2010)...............................................................................................62
11

Gambar 2.10. Diagram alur interaksi berbagai modul pada Open Dynamic
Engine(R.C Kooijman 2010) ............................................................................ 63
Gambar 2.11 Model 3D Al-Fath pada software Inventor dan 3DS Max......... 64
Gambar 2.12 Penyederhanaan model chassis Al-Fath................................... 64
Gambar 2.13 Pemodelan roda pada piranti lunak Inventor dan 3DS Max .... 65
Gambar 2.14 Pemodelan roda pada ODE sebelum dan sesudah
penyederhanaan ............................................................................................ 65
Gambar 2.15 Titik benturan antara distance sensor beam dengan rintangan
........................................................................................................................ 66
Gambar 2.16. Skema pergerakan robot menuju suatu target (Hafidh 2011) 68
Gambar 2.17. Representasi Roll, Alpha, dan Theta........................................ 69
Gambar 2.18. Contoh penerapan Path Planning dengan Collision Avoidance
(Hafidh 2011).................................................................................................. 69
Gambar 2.19. Perhitungan jalur terpendek menggunakan algoritma Flood Fill
dan Backtracking ............................................................................................ 71
Gambar 2.20. Contoh penerapan jalur terpendek menggunakan Flood Fill dan
Backtracking pada Open Dynamic Engine...................................................... 71
Gambar 2.21. Ilustrasi target robot tanpa informasi peta lokasi ................... 72
Gambar 2.22. Ilustrasi target robot dengan informasi peta lokasi ................ 73
Gambar 2.23. Perpotongan antara lingkaran dan garis ................................. 74
Gambar 2.24. Penerapan penentuan posisi target algoritma Position by Line
pada Open Dynamic Engine............................................................................ 74
Gambar 2.25. Path Planning menuju posisi stabil pada Open Dynamic Engine
........................................................................................................................ 75
Gambar 2.26. Diagram alur algoritma Extended Position by Line.................. 76
Gambar 2.27. Contoh Penerapan Algoritma Extended Position By Line ........ 76
Gambar 2.28. Contoh penerapan algoritma Extended Position by Linepada
Open Dynamic Engine..................................................................................... 77
Gambar 2.29. Implementasi algoritma Takahashi, Sekiyama, dan Fukuda
pada Open Dynamic Engine............................................................................ 79
Gambar 2.30. Proses Pemberitahuan Posisi Robot........................................ 79
Gambar 2.31. Skenario pertama terkait keterhubungan antara menara
komunikasi pada algoritma Self Deployment ................................................. 80
Gambar 2.32. Skenario kedua terkait keterhubungan antara menara
komunikasi pada algoritma Self Deployment ................................................. 80
Gambar 2.33. Quadratic Optical Encoder (Siegwart, 2004) ........................... 83
Gambar 2.34. Bentuk fisik X-Bee.................................................................... 85
Gambar 2.35. Hasil Pengukuran Kuat Sinyal Selama 24 jam (Janire Larranaga,
2010)............................................................................................................... 86
Gambar 2.36. Arsitektur sistem secara umum............................................... 86
12

Gambar 2.37. Sistem komunikasi robot dengan BTS......................................87


Gambar 2.38 Tampilan antar muka Real Time Al-Fath Monitor ....................88
Gambar 2.39. Spesifikasi motor dan encoderrobot Al-Fath (Dewanto 2010) 90
Gambar 2.40. Representasi arah terhadap robot...........................................91
Gambar 2.41. Posisi akhir robot yang diharapkan setelah algorima Position by
Line..................................................................................................................93
Gambar 2.42. Kaitan antara sinyal X-Bee dengan jarak .................................93
Gambar 2.43. Pergerakan pembaharuan nilai dan posisi Local Best..............95
Gambar 2.44. Feasible position dalam algoritma Position by Line .................96
Gambar 2.45. Pengaturan Area Uji Coba........................................................97
Gambar 2.46. Snapshot pergerakan robot pada uji coba...............................98
Gambar 2.47. Tabrakan antara dua robot Al-Fath .........................................98
Gambar 2.48. Pengujian kompas yang dipengaruhi benda disekitarnya .......99
Gambar 2.49. Topologi MANET ....................................................................100
Gambar 3.1. Quadcopter ..............................................................................109
Gambar 3.2. Gambar Arah Putaran Baling-baling Quadcopter ....................112
Gambar 3.3. Parrot AR Drone ....................................................................115
Gambar 3.4. Modul GPS 20 Cannel EM-406A SIRF .......................................118
Gambar 3.5. Posisi Pemasangan modul GPS dan XBee pada ARDrone........118
Gambar 3.6. Rancangan Agen.......................................................................119
Gambar 3.7. Pemodelan Kecepatan ARDrone..............................................120
Gambar 3.8. Monitoring posisi ARDrone......................................................121
Gambar 3.9. Penentuan posisi ARDrone menggunakan GPS .......................122
Gambar 3.10. Flow Diagram Perancangan Behavioral Agent.......................122
Gambar 3.11. Skema ujicoba (a) skenario A dan (b) skenario B...................123
Gambar 3.12. Kondisi Akhir Setiap Agent Berhasil Saling Terhubung..........124
Gambar 3.13. Posisi kamera pada AR.Drone................................................125
Gambar 3.14. Tahap Pengembangan Sistem Tanpa Menerbangkan AR-Drone
......................................................................................................................126
Gambar 3.15. Tahap Pengembangan Sistem pada AR-Drone ......................127
Gambar 3.16. Beberapa Gambar Objek Topi 70x70 pixel dengan Orientasi (a)
450, (b) 900, dan (c) 3150 ...............................................................................129
Gambar 3.17. Beberapa Gambar Objek Non-Topi........................................129
Gambar 3.18. Gambar Penuh Kamera Bawah AR.Drone (176x144 pixel) ....129
Gambar 3.19. Fitur CCD ................................................................................130
Gambar 3.20. Bagan Proses PCA...................................................................131
Gambar 3.21. Arsitektur GLVQ untuk Kasus Topi.........................................135
Gambar 3.22. Koordinat Pixel Kamera Bawah AR-Drone .............................137
Gambar 3.23. Koordinat Posisi dalam Sumbu Kartesian ..............................138
Gambar 3.24. Koordinat Kecepatan AR-Drone untuk Perintah Twist ..........138
13

Gambar 3.25. Proses pengujian (a) posisi awal ARDrone (b) Pesisi peletakan
objek (c) hasil pendeteksian oleh ARDrone.................................................. 139
Gambar 3.26. Proses Pengujian Pelacakan Objek Topi ................................ 140
Gambar 3.27. Tampilan Layar Perangkat Lunak V-Rep ................................ 143
Gambar 3.28. Proximity Sensor.................................................................... 146
Gambar 3.29. Koordinat X dan Y di V-REP.................................................... 149
Gambar 3.30. Ilustrasi Pola Garis yang Terbentuk ....................................... 152
Gambar 3.31. Pergerakan Lingkaran ............................................................ 154
Gambar 3.32. Ilustrasi Pola Lingkaran yang Terbentuk................................ 156
Gambar 3.33. Proses Perubahan Formasi dari Pola Lingkaran ke Pola Segitiga
...................................................................................................................... 157
Gambar 3.34. Hasil Pemetaan Quadcopter pada Grafik Fungsi sin 3 ........ 158
Gambar 3.35. Proses Perubahan Formasi dari Pola Lingkaran ke Pola Jajar
Genjang ........................................................................................................ 160
Gambar 3.36. Hasil Pemetaan Quadcopter pada Grafik Fungsi sin 4 ........ 161
Gambar 3.37. Tahapan Pembentukan Formasi Segitiga pada Simulasi V-REP
...................................................................................................................... 164
Gambar 3.38. Formasi Jajar Genjang yang Berhasil Dibentuk pada Simulasi VREP................................................................................................................ 166
Gambar 4.1. Bioloid Kit beserta Kit .............................................................. 171
Gambar 4.2. Controller CM-510 ................................................................... 172
Gambar 4.3. Dynamixel AX-12...................................................................... 172
Gambar 4.4. Modul Zig100........................................................................... 174
Gambar 4.5. Accelerometer MMA7260........................................................ 174
Gambar 4.6. Sensor Kamera OV6620........................................................... 175
Gambar 4.7. Modul CMUcam3 (Kamera dan LPC2106) ............................... 175
Gambar 4.8. Bentuk Fisik Robot Humanoid (Tampak belakang, tampak
samping, tampak depan).............................................................................. 176
Gambar 4.9. Robot-Robot yang Dikembangkan dengan ROS ...................... 177
Gambar 4.10. Hasil Visualisasi dengan Menggunakan rviz .......................... 178
Gambar 4.11. Contoh Interaksi Node pada ROS (rxgraph)........................... 179
Gambar 4.12. Roboplus................................................................................ 180
Gambar 4.13. RoboPlus Manager ................................................................ 180
Gambar 4.14. Roboplus Motion ................................................................... 181
Gambar 4.15. Roboplus Task manager ........................................................ 182
Gambar 4.16. Detail Spesifikasi Lapangan ................................................... 183
Gambar 4.17. Reposisi robot ketika pelanggaran ........................................ 184
Gambar 4.18. Struktur Robot Bagian Depan dan Belakang ......................... 185
Gambar 4.19. Struktur Robot Bagian Bawah ............................................... 186

14

Gambar 4.20. Pembagian wilayah untuk masing-masing robot pada saat


pertandingan.................................................................................................187
Gambar 4.21. Flow Algoritma Robot Penyerang dan Bertahan pada saat
Pertandingan.................................................................................................188
Gambar 4.22. Flow Algoritma Robot Kiper pada saat Pertandingan............189
Gambar 4.23. Proses Kalibrasi Penentuan Rentang RGB..............................191
Gambar 4.24. Algoritma color filtering .........................................................192
Gambar 4.25. Algoritma pencarian bola.......................................................194
Gambar 4.26. Robot Berjalan Maju ..............................................................194
Gambar 4.27. Robot Menendang .................................................................194
Gambar 4.28. Robot Berjalan Samping Kanan..............................................195
Gambar 4.29. Robot Berjalan Maju Samping Kiri .........................................195
Gambar 4.30. Robot Berjalan Samping Kanan..............................................196
Gambar 4.31. Robot Bergerak Samping Kiri .................................................196
Gambar 4.32. Grafik perilaku kontrol PID (Braunl 2006)..............................198
Gambar 4.33. Alur kontrol PID......................................................................199
Gambar 4.34. Deskripsi joint dan servo pada robot humanoid....................199
Gambar 4.35. Microsoft Kinect XBOX 360 ...................................................202
Gambar 4.36. Rancangan Sistem Robot Imitasi Gerakan Manusia ..............203
Gambar 4.37. Gambar Menyerupai Manusia dan Kerangkanya ..................204
Gambar 4.38. Ektraksi Fitur Data Sendi ........................................................205
Gambar 4.39. Proses translasi motion dari nilai fitur ...................................206
Gambar 4.40. Model komputasi jaringan saraf tiruan (T. Kohonen, 1999)..207
Gambar 4.41. Arsitektur FNGLVQ (Setiawan et al., 2011)............................208
Gambar 4.42. Pseudocode Algoritma FNGLVQ ...........................................210
Gambar 4.43. Logika Motion Stability Control..............................................211
Gambar 4.44. Skeleton Tracking ...................................................................212
Gambar 4.45. Tampilan bioloid tipe Premium A pada rviz...........................213
Gambar 4.46. Interaksi antara Komponen di Dalam Robot Bioloid .............220
Gambar 4.47. Tampilan Bioloid Tipe Premium A pada Rviz .........................222
Gambar 4.48. Rxgraph Imitasi Gerak Manusia pada Robot humanoid ........229
Gambar 4.49. Screenshot hasil implementasi imitasi gerakan manusia pada
robot humanoid ............................................................................................230

15

Daftar Tabel
Tabel 2-1. Pergerakan Robot Al-Fath ............................................................. 67
Tabel 3-1. Pengelompokan Jenis UAV .......................................................... 108
Tabel 3-2. Spesifkasi AR Drone..................................................................... 116
Tabel 3-3. Aturan Gerakan dari Algoritma Obstacle Avoidance................... 148
Tabel 3-4. Jangka Waktu Pembentukan Pola Formasi Segitiga.................... 164
Tabel 3-5. Jangka Waktu Pembentukan Pola Formasi Jajar Genjang........... 166
Tabel 4-1. Klasifikasi Gerakan Robot ............................................................ 223
Tabel 4-2. Data Sampel................................................................................. 230
Tabel 4-3. Tingkat Akurasi ............................................................................ 231

16

BAB

1|

1. BAB 1| Apa Itu Robot


Teknologi robotika merupakan salah satu teknologi yang penting
dalam menentukan kemajuan peradaban di dunia. Teknologi robotika
dapat meningkatkan produktivitas suatu pekerjaan. Dengan adanya
robotika, pekerjaan yang sebelumnya sulit dan berbahaya untuk
dikerjakan sekarang sudah dapat dikerjakan lebih mudah dan aman.
Misalnya, melakukan eksplorasi jauh ke dalam perut bumi, ke dalam
lautan, eksplorasi ruang angkasa dan lain sebagainya. Dengan kondisi
seperti itu, tidak heran jika perkembangan robotika berjalan dengan
cukup pesat dari masa ke masa. Perkembangan robotika terjadi di
hampir setiap sektor kehidupan, seperti sektor militer, manufaktur,
industri, kesehatan dan sektor kehidupan lainnya.
Perkembangan tersebut terlihat di negara-negara di mana robot sudah
menjadi bagian dari setiap pekerjaan yang mereka lakukan.
Berdasarkan data yang dikumpulkan oleh International Federation of
Robotics, negara yang paling maju teknologi otomatisasinya adalah
Jepang, Republik Korea, dan Jerman. Diketahui bahwa kepadatan
robot pada industri di ketiga negara tersebut berturut-turut untuk
setiap 10.000 jumlah pekerja adalah 306, 287, dan 253 buah robot.
Jumlah robot juga bertambah seiring bertambahnya kebutuhan dalam
penggunaannya. Contohnya industri otomotif di Jepang
membutuhkan 1.436 unit robot per 10.000 pekerja.
Kebutuhan jumlah robot yang tinggi tersebut membuat industri robot
menjadi industri yang berkembang dengan sangat baik. Data yang ada
menunjukan bahwa robot pelayan (robot untuk pekerjaan tertentu)
untuk melayani manusia terjual cukup banyak. Robot yang digunakan
17

untuk pekerjaan profesional terjual hingga 13.741 unit di tahun 2010.


Robot yang paling banyak terjual di pekerjaan profesional tersebut
adalah robot untuk keperluan militer, terutama kendaraan udara
tanpa awak (unmanned aerial vehicle) dan robot pengambil susu
untuk keperluan pekerjaan lapangan. Sedangkan untuk pekerjaan
perorangan, terjual 2,2 juta robot di tahun 2010. Kebanyakan robot
tersebut adalah robot yang digunakan untuk keperluan rumah tangga,
seperti robot penyedot debu, robot pemotong rumput, dan robot
untuk keperluan hiburan. Oleh karena itu, teknologi robot selalu
dibutuhkan dan dikembangkan. Karena itu pula, penelitian yang
dilakukan dibidang robotika semakin banyak, sehingga ilmu ini terus
berkembang dengan pesat.

1.1 Definisi Robot

Mendefinisikan robotika secara jelas merupakan hal yang sulit. Bahkan


seorang Joseph Engelberger, yang dijuluki sebagai bapak robotika
karena jasanya mengembangkan robot industri yang pertama di
Amerika Serikat, pernah mengatakan saya tidak dapat mendefinisikan
robot, tapi saya tahu ketika saya melihatnya. Hal ini terjadi karena
robot merupakan hal yang kompleks dan sulit dideskripsikan dengan
kata-kata.
Menurut definisi dari kamus Meriam-Webster, robot adalah mesin
yang terlihat seperti manusia dan melakukan berbagai tindakan yang
kompleks dari manusia seperti berjalan atau berbicara, atau suatu
peralatan yang bekerja secara otomatis. Robot biasanya diprogram
untuk melakukan pekerjaan berulang kali dan memiliki mekanisme
yang dipandu oleh kontrol otomatis. Sedangkan robotika adalah
cabang teknologi yang berkaitan dengan desain, konstruksi, operasi,
dan aplikasi dari robot. Robotika merupakan cabang ilmu
pengetahuan yang mempelajari tentang robot. Cabang ilmu tersebut
mencakup desain mesin robot, elektronika, pengontrolan,
pemrograman komputer, kecerdasan buatan, dan lain sebagainya.
Terdapat pendapat lain mengenai definisi robot, seperti diutarakan
oleh Robotic Institute of America sebuah institusi robot yang terdapat
18

di Universitas Carnegie Mellon di kota Pittsburgh, negara bagian


Pensilvania, Amerika Serikat, pada tahun 1979 mendefinisikan secara
formal yang dimaksud dengan robot adalah "manipulator multi fungsi
dan dapat diprogram ulang yang dirancang untuk menggerakkan
material, alat, atau perangkat khusus melalui sejumlah gerakan
terprogram untuk melakukan aktifitas tertentu".
Meskipun terdapat berbagai definisi robot, seperti telah disebutkan
sebelumnya, tidak ditemukan definisi standar yang menjelaskan
sebuah robot. Namun demikian, terdapat empat karakteristik dasar
yang harus dimiliki oleh setiap robot modern. Karakteristik dasar
tersebut adalah sebagai berikut.
1. Memiliki sensor. Sensor merupakan peralatan yang berguna
untuk mengukur ataupun merasakan sesuatu pada lingkungan di
luar robot, layaknya indera pada makhluk hidup, dan memberi
laporan hasilnya kepada robot. Dengan adanya sensor, robot bisa
memiliki suatu pertimbangan dalam mengambil keputusan.
Contoh dari sensor adalah sensor cahaya untuk mendeteksi
adanya cahaya dan sensor temperatur untuk mengukur suhu.
2. Memiliki sistem kecerdasan (Kontrol). Sistem kecerdasan bekerja
dengan memproses data masukan berupa keadaan ataupun
kejadian yang sedang terjadi dari luar lingkungan. Selanjutnya
sistem menghasilkan keluaran berupa instruksi ataupun
keputusan pada robot untuk melakukan suatu tindakan tertentu.
Sistem ini secara umum memiliki prinsip kerja seperti otak pada
makhluk hidup, yang berfungsi untuk berpikir dan memutuskan
tindakan apa yang perlu diambil pada suatu waktu tertentu.
3. Memiliki peralatan mekanik (Aktuator). Peralatan mekanik
berfungsi untuk membuat robot dapat melakukan suatu tindakan
tertentu dan berinteraksi dengan lingkungannya. Contohnya
seperti adanya roda bermotor untuk bergerak, lengan untuk
mengambil objek, dan lain-lain.
4. Memiliki sumber daya (Power). Sebagaimana pada organisme
kehidupan yang membutuhkan makanan untuk hidup, robot juga
memerlukan sumber tenaga untuk menggerakkan komponen
elektrik dan mekanika yang terpasang. Sumber energi pada robot
19

mencakup penyedia tenaga listrik seperti baterai, dan sistem


pengatur transmisi yang bertugas mengonversi tenaga listrik
sesuai kebutuhan setiap komponen.

Gambar 1.1. Karakteristik Robot

Kita bisa lebih mudah menentukan apakah suatu benda merupakan


robot atau bukan dengan mengetahui karakteristik dasar dari benda
tersebut. Selain itu keempat parameter tersebut merupakan
pertimbangan utama dalam merancang robot.
Pada robot modern, aktuator sering kali dikaitkan dengan ilmu
mekanika. Dalam mekanika, dipelajari hal-hal mengenai berbagai
macam gaya yang terjadi akibat susunan konstruksi, letak pusat
gravitasi, dan sifat material. Dengan mempertimbangkan sifat-sifat
mekanika, robot akan bergerak dengan stabil dan mengurangi resiko
terjatuh.
Sensor pada robot modern seringkali berkaitan dengan ilmu
elektronika. Dalam ilmu elektronika dipelajari hal-hal yang berkaitan
dengan komponen elektronik, sirkuit analog, sirkuit digital, dan juga
microcontroller. Sebuah sensor dapat tersusun dari rangkaian analog
atau rangkaian digital. Bersamaan dengan meningkatnya teknologi
komputer dan elektronika maka meningkat pula pengembangan
sensor yang dapat difabrikasikan dengan ukuran mini.
Sistem kecerdasan pada robot modern dikembangkan pada sebuah
piranti lunak. Kecerdasan buatan dapat dirancang menggunakan
20

algoritma yang memungkinkan robot bergerak secara otomatis,


dengan mempertimbangkan informasi sekitar yang dibaca dari sensor
yang ada. Selain itu terdapat layer keterhubungan antara sistem
kecerdasan dengan sensor dan aktuator. Dengan demikian, data dapat
ditransfer antar komponen yang dikelola oleh perangkat keras
menggunakan piranti lunak yang dibuat.

1.2 Sejarah Perkembangan Robotika

Sejarah perkembangan robot dipisahkan dalam dua fase, yaitu robot


klasik dan robot modern. Robot klasik merupakan sebuah sistem
mekanika/automata yang dapat melakukan suatu aktivitas tertentu
dengan tugas yang telah ditentukan, namun belum memiliki
perlengkapan sensor yang memungkinkan robot untuk bergerak
otomatis. Sedangkan perkembangan robot modern dimulai sejak
diperkenalkannya teknologi elektronika.
Pada fase robot klasik, ide penciptaan automata sudah muncul sejak 3
abad sebelum masehi, dengan ditemukannya literatur di Cina yang
menceritakan tentang kisah arsitek Lie Zie dan raja Mu. Diceritakan
sang arsitek mempersembahkan kepada raja sebuah boneka automata
yang dapat bergerak, bernyanyi dan berdansa serta ditanamkan
replika organ dalam tubuh. Meskipun kebenaran dari cerita ini
diragukan, ide penciptaan automata benar adanya. Automata pertama
ditemukan oleh Heron dari Alexandria sejak 150 tahun sebelum
masehi. Heron menciptkan kendali otomatis kendaraan. Automata ini
dapat diprogram untuk bergerak dengan pola yang ditentukan.
Kata robot sendiri baru dikenal pada tahun 1921. Robot berasal dari
bahasa Ceko, robota, yang berarti pekerja yang seperti budak. Katakata itu dipakai oleh Karel Capek dalam acara pementasan yang
bernama Rossums Universal Robots (R.U.R)
di
London.
Meskipun begitu, jauh sebelum waktu tersebut sudah ada robot yang
diciptakan berdasarkan prinsip-prinsip robot modern.
Automata pertama yang dapat diprogram sudah ada sejak abad ke 12
masehi, yaitu sebuah mekanika band musik buatan ilmuan asal Jazirah
21

Arab, Al-Jazari. Al-Jazari membuat mekanika band yang digunakan


untuk menghibur tamu kerajaan tersebut pada tahun 1206. Mekanika
band itu diletakkan diatas sebuah perahu terapung dan terdiri dari
empat buah robot yang mana dua diantaranya menabuh dram, serta
satu pemain harpa dan satu peniup suling. Penabuh dram dapat
memainkan irama dan ritme yang berbeda, sesuai dengan program
yang diatur melalui sumbatan air. Dengan demikian mekanika ini
dapat dikontrol dari jarak jauh.
Pada tahun 1495, Leonardo da Vinci sudah dapat membuat desain
automata berbentuk manusia yang dapat berdiri, duduk, mengangkat
helm, serta melakukan manuver dengan tangannya. Desain itu
kemudian pernah dibuat menjadi nyata oleh ilmuan di masa kini, dan
terbukti robot hasil desain tersebut bisa bekerja sesuai dengan
rancangan Da Vinci (Gambar 1.2 b).

Gambar 1.2. a. Robot Band b. Robot Leonardo

Fase sejarah robot modern yang memiliki ketiga karakteristik


diantaranya sensor, aktuator, dan kecerdasan buatan dimulai pada
tahun 1898. Nikola Tesla yang kemudian dinobatkan sebagai bapak
robotika, memperkenalkan robot perahu yang berlayar pada kolam
kecil dan dikendalikan jarak jauh menggunakan gelombang radio.
Tesla membuat robot kapal tanpa awak yang bisa dikontrol dari jauh
untuk berjalan ataupun berhenti, serta bergerak ke arah yang
diinginkan menggunakan gelombang radio.

22

Gambar 1.3. Robot Tesla

Pada tahun 1948, W. Grey Walter membuat robot yang diberi nama
Elmer and Elsie. Robot ini merupakan salah satu robot autonomous
pertama. Bentuk robot ini seperti kura-kura dan bergerak dengan
menggunakan tiga roda. Robot ini dapat berjalan menghindari
hambatan dan mencari jalan ke tempat pengisian baterai ketika
baterainya hampir habis, sensor yang digunakan robot ini adalah
sensor cahaya.
Robot digital diprogram pertama kali oleh George Devol pada tahun
1954. Robot tersebut berbentuk lengan dan diberi nama unimate.
Pada tahun 1961, robot untuk industri pertama dibuat oleh
perusahaan General Motors di New Jersey. Robot tersebut merupakan
pengembangan dari robot unimate yang dibuat oleh George Devol dan
Joe Engelberger.
Setelah masa robot industri pertama tersebut, teknologi robot
berkembang dengan pesat sehingga banyak robot-robot baru yang
diluncurkan. Bahkan beberapa universitas terkemuka di dunia juga
mulai membuka divisi khusus untuk pembelajaran robot di tempatnya
masing-masing. Tercatat laboratorium kecerdasan buatan dibuka pada
tahun 1964 antara lain: M.I.T., Stanford Research Institute, Stanford
University, dan University of Edinburg. Kemudian pada tahun 1965
Carnegie Mellon University (CMU) membentuk Robotics Institute.
Semenjak saat itu, sulit untuk melacak setiap robot yang telah
dikembangkan, karena semakin banyak pihak yang mampu
mengembangkan dan memproduksinya secara massal.

23

Salah satu robot yang cukup fenomenal di era modern adalah robot
menyerupai manusia bernama Honda Asimo, yang diperkenalkan pada
tahun 2000. Robot yang dapat dikendalikan dengan remote control
tersebut mampu berjalan dan berganti arah dengan baik. Selain itu,
ASIMO (gambar 1.4) juga dapat melaksanakan pekerjaan seperti
menghidupkan lampu dan membuka pintu. Secara ringkas sejarah
perkembangan robot diilustrasikan oleh Gambar 1.5.

Gambar 1.4. Robot Asimo

Gambar 1.5. Sejarah Perkembangan Robot

24

1.3 Jenis Robot

Teknologi robot memiliki cakupan yang sangat luas serta memiliki


berbagai bidang terapan. Oleh karena itu, sangat banyak
pengelompokan jenis robot yang bisa dibuat. Sebagai contoh, robot
bisa dikelompokkan berdasarkan penggunaannya seperti untuk
militer, kedokteran, manufaktur, dan lain-lain. Selain itu robot dapat
dikelompokan berdasarkan interaksinya dengan manusia, seperti
robot yang dikontrol secara manual, robot semi otomatis, dan fully
autonomous.
Pada subbab ini akan dibahas mengenai beberapa jenis klasifikasi
robot yaitu klasifikasi robot industri, klasifikasi robot berdasarkan
kemampuan gerak, klasifikasi robot berdasarkan lokomotif gerak, dan
klasifikasi robot berdasarkan medan jelajah.
1.3.1 Klasifikasi Robot Industri
Departemen
industri
Universitas
Louisiana
memudahkan
pengelompokan robot berdasarkan enam kategori yaitu:
1. Geometri lengan (arm geometry): berbentuk persegi, silinder,
bola, dan persendian.
2. Derajat kebebasan (degree of freedom): skala angka yang
menyatakan semakin tinggi nilai kebebasan menunjukkan
fleksibilitas gerak semakin bebas.
3. Sumber tenaga: tenaga listrik, tenaga hidrolik, tenaga pneumatik
4. Alat dan jenis gerak: robot statis, robot beroda, robot berkaki
5. Path control: serangkaian gerak terbatas, perpindahan titik,
sekuens gerak berkelanjutan, arah gerak terkontrol.
6. Skala kecerdasan: terkontrol dan otonom.
Organisasi lainnya juga mendefinisikan sistem klasifikasi untuk jenis
robot yang lain. Japanese Industrial Robot Association (JIRA)
mendefinisikan enam kelas robot industri yaitu:
1. Perangkat penanganan manual: robot ini memiliki derajat
kebebasan yang tinggi, namun semua aksi yang dilakukan harus
dikontrol operator.

25

2. Rangkaian pekerjaan tetap: robot ini bertugas melakukan aksi


terbatas yang ditentukan tanpa memerlukan bantuan operator,
namun aksi yang dilakukan tidak dapat dirubah.
3. Rangkaian pekerjaan terprogram: Robot ini memiliki kemiripan
dengan kelas 2, kecuali aksi yang ditentukan dapat diprogram
untuk tugas baru.
4. Playback robot: Robot ini pertama dilatih untuk melakukan
rangkaian operasi oleh operator, selanjutnya robot dapat
melakukan aksi yang sama berulang-ulang.
5. Robot kontrol numerik: Robot bekerja melalui suatu rangkaian
operasi melalui data numerik yang diterimanya.
6. Robot cerdas: Robot yang dapat membaca informasi dari
lingkungan, dan merespon sesuai dengan keadaan dalam rangka
menunaikan tugas yang ditentukan.
Robotic Institute of America mengklasifikasikan robot industri
berdasarkan kelas yang mirip namun tidak menganggap kelas 1 dan 2
sebagai robot.
1.3.2 Klasifikasi Robot Berdasarkan Kemampuan Gerak
Berdasarkan kemampuan geraknya robot dapat diklasifikasikan
menjadi dua kelas yaitu robot statis dan robot bergerak. Penjelasan
mengenai kedua kelas tersebut adalah sebagai berikut.
1. Robot Statis
Robot jenis ini letaknya menetap dan tidak dapat berpindah ke
suatu lokasi tertentu, tanpa bantuan manusia. Walaupun
melakukan gerakan, hanya beberapa bagian robot itu saja yang
melakukannya, contohnya seperti lengan robot. Robot ini
kebanyakan digunakan untuk keperluan pabrik dan industri,
seperti industri otomotif dan industri makanan. Robot ini
mencakup:
a. Robot Arm: robot berbentuk lengan.
b. Numerical Control Machine Tools : robot berbentuk
komputer yang dioperasikan menggunakan perintah yang
diprogram dan berfungsi untuk mengontrol pergerakan
mesin tertentu secara otomatis.
26

Gambar 1.6. Robot Arm Milik KUKA

2. Robot Bergerak
Disebut juga sebagai mobile robot, dan seringkali dilengkapi
dengan kemampuan untuk bergerak otonom. Robot ini
memiliki kemampuan untuk berpidah dari satu tempat ke
tempat yang lain, perpindahan tersebut direncanakan
berdasarkan motion planning yang ditentukan berdasarkan
pertimbangan objektif tertentu misalnya menghindari
rintangan atau mencari jarak terdekat. Karena keperluannya
untuk bergerak, robot bergerak umumnya dilengkapi sensor
untuk mendeteksi halangan, sensor dukungan gerak seperti
accellerometer dan sensor deteksi keseimbangan seperti
gyroscope. Robot juga harus memiliki kemampuan melacak
posisi saat ini dan posisi yang dituju sehingga tidak jarang
dilengkapi dengan GPS. Sebagai kawanan, robot bergerak
memerlukan mekanisme komunikasi sesamanya sehingga
memerlukan pemasangan wireless sensor network.
1.3.3 Klasifikasi Robot Bergerak Berdasarkan Lokomotif Gerak
Robot yang difungsikan untuk bergerak menuju suatu tujuan tertentu
membutuhkan semacam mekanisme lokomotif seperti halnya sistem
biologi pada makhluk hidup. Sistem tersebut terbukti mampu
melakukan perpindahan pada berbagai medan. Idealnya, dengan
mereplikasi sistem gerak makhluk hidup robot memiliki kemampuan
bergerak yang sama. Namun demikian, melakukan hal tersebut
merupakan pekerjaan yang sangat sulit. Sistem mekanika pada
mahkluk hidup dibangun diatas struktur konstruksi yang sangat detail
mulai dari sel, jaringan, organ, sampai sistem organ. Pada robot, setiap
27

bagiannya harus dimanufaktur secara manual sehingga menghabiskan


biaya yang mahal jika struktur yang dibuat demikian kompleks. Pada
Gambar 1.7 menunjukan berbagai bentuk sistem gerak pada mahluk
hidup.
Jenis gerakan

Sifat hambatan
Gaya hidro dinamik

Mengalir
Gaya gesek

Merayap
Gaya gesek

Menggesek
Hilangnya energi kinetik

Berlari
Hilangnya energi kinetik

Berlompat
Gaya gravitasi

Berjalan
Gambar 1.7. Mekanisme Lokomotif pada Makhluk Hidup
28

Dengan keterbatasan yang ada, robot bergerak pada umumnya


memanfaatkan mekanisme beroda, sebuah sistem mekanik yang
terdapat pada kendaraan. Alternatif lainnya, mekanisme gerak robot
dirancang menggunakan kaki buatan dengan jumlah sedikit. Para
perancang robot, lebih memilih membuat robot menggunakan roda.
Hal ini disebabkan lokomotif kaki ideal memerlukan nilai degree of
freedom (DOF) yang tinggi sehingga memiliki sistem mekanika yang
lebih rumit. Lokomotif beroda selain lebih mudah dibuat, juga lebih
efisien dari lokomotif berkaki pada medan datar.
Terdapat tiga hal yang perlu dipertimbangkan dalam pemilihan alat
gerak untuk robot, antara lain :
1. Stabilitas. Pertimbangannya mencakup bentuk geometri dari
bidang sentuh robot, pusat gravitasi robot, stabilitas robot saat
diam dan bergerak, serta kemiringan medan.
2. Bidang sentuh. Pertimbangannya mencakup ukuran, bentuk,
kemiringan, dan gaya gesek bidang sentuh.
3. Jenis lingkungan. Pertimbangannya mencakup struktur penyusun
dari lingkungan serta mediumnya, seperti tanah, air, ataupun
udara.
Berdasarkan alat gerak yang dipergunakan, robot bergerak dapat
diklasifikasikan menjadi robot beroda dan robot berkaki. Kedua jenis
robot tersebut akan dijelaskan lebih lanjut pada subbab 1.3.3.1 dan
subbab 1.3.3.2.
1.3.3.1 Robot Beroda

Robot beroda merupakan robot yang dapat berpindah menggunakan


roda bermotor untuk bergerak. Dibandingkan dengan robot jenis lain
robot ini lebih mudah dibangun, dikontrol, dan digunakan pada bidang
datar. Namun demikian, robot jenis ini kurang sesuai untuk bidang
kasar seperti bebatuan ataupun bidang yang memiliki halangan, dan
juga bidang yang kemiringannya terlalu curam. Robot beroda dapat
diklasifikasikan berdasarkan jenis roda dan jumlah rodanya. Kedua hal
tersebut akan dijelaskan pada bagian selanjutnya.

29

1. Klasifikasi Berdasarkan Jenis Roda

Berdasarkan jenis rodanya, robot beroda dapat diklasifikasikan


menjadi tiga kelas. Masing-masing kelas memiliki perbedaan
dalam hal kinematika sehingga pemilihan jenis roda akan
mempengaruhi kemampuan kinematika robot secara keseluruhan.
Pemilihan jenis roda pada robot berhubungan erat dengan
susunan rancangan roda dan juga geometri roda.
Jenis roda pertama adalah roda biasa yang memiliki dua derajat
kebebasan dan dapat bergerak maju atau mundur. Jenis kedua
adalah roda omni. Pada roda jenis ini terdiri dari roda utama yang
memiliki bentuk fisik mirip dengan roda biasa, namun pada
perimeter luar roda utama terpasang sub roda-roda lain yang
memiliki axis rotasi berbeda dengan roda utama dan berukuran
lebih kecil. Omni wheels memiliki nilai tiga derajat kebebasan.
Jenis terakhir adalah roda berbentuk bola yang juga memiliki nilai
derajat kebebasan sama seperti omni wheels, namun lebih bebas
bergerak. Hal ini terjadi karena pada omni wheels terdapat sub
roda yang mengalami gaya hambat akibat tekanan berat dari roda
utama. Bentuk fisik dari ketiga jenis roda tersebut dapat dilihat
pada gambar 1.8.

(a) Roda biasa

(b) roda omni


Gambar 1.8. Jenis-jenis Roda

(c) bola

Selain pemilihan jenis roda, perancang robot juga perlu


memperhatikan konfigurasi roda yang akan dipasang. Hal ini
mencakup jumlah roda yang akan dipasang dan sistem kemudi
yang akan dipakai. Robot beroda dapat memiliki jumlah roda
minimal satu dan tidak memiliki batasan maksimal. Meskipun
demikian, jumlah minimal roda untuk mencapai kesetimbangan
statik dan dinamik adalah tiga. Berikutnya akan dijelaskan

30

mengenai klasifikasi robot beroda berdasarkan jumlah roda yang


dimilikinya.
2. Klasifikasi Berdasarkan Jumlah Roda
Berdasarkan jumlah roda, robot beroda dapat diklasifikasikan menjadi 4
kelas, yaitu robot beroda dua, beroda tiga, robot beroda empat dan
robot berantai. Keempat jenis robot tersebut dijelaskan pada bagian
berikut.
a. Robot Beroda Dua

Pada robot beroda dua kesetimbangan diraih dengan


membuat robot bergerak ke arah jatuhnya. Untuk keperluan
tersebut perlu diimplementasikan algoritma kendali yang
handal. Robot beroda dua harus memiliki dua macam sensor
yaitu sensor untuk mendeteksi kemiringan robot dan sensor
untuk melacak posisi robot. Robot beroda dua dapat mencapai
kesetimbangan statik jika pusat massa berada dibawah gandar.
Namun dalam kondisi normal hal ini membutuhkan diameter
roda yang berukuran besar.
Sistem kemudi pada robot beroda dua disebut differential
steering yaitu selisih kecepatan antara masing-masing rodanya,
dan hal ini memerlukan setiap roda memiliki motor yang
independen. Sebagai contoh, robot berbelok ke kiri dengan
mendiamkan roda kiri dan menggerakkan roda kanan,
sedangkan untuk berbelok ke kanan diraih dengan
membalikkan kondisi ini. Rotasi robot diraih dengan membuat
setiap roda berputar ke arah yang berlawanan. Selisih
kecepatan antara rodanya menentukan seberapa cepat robot
dapat berbelok dan berputar.

31

Gambar 1.9. Sistem Differential Steering

Konfigurasi lainnya, dua roda dapat diposisikan seri seperti


yang ditemukan pada sepeda. Roda depan berfungsi sebagai
kemudi untuk merubah orientasi gerak, dan roda belakang
berfungsi motor penggerak yang dihubungkan dengan power.
Sama dengan robot yang dikonfigurasikan parallel, robot yang
dikonfigurasikan seri memiliki ketidaksetimbangan statis dalam
mekanisme diam.

Gambar 1.10. Konfigurasi Roda Dua, Atas (parallel) Bawah


(seri)
b. Robot Beroda Tiga

Robot beroda tiga sesuai untuk pemula karena tidak


memerlukan algoritma khusus untuk menstabilkan robot.
Penempatan posisi roda diatur sedemikian rupa membentuk
32

segitiga. Terdapat dua alternatif konfigurasi sistem kemudi


yang sederhana, pertama dua roda belakang dihubungkan ke
motor penggerak yang sama dan roda depan berfungsi sebagai
"Power Steering", kedua masing-masing roda belakang
memiliki motor penggerak terpisah dan roda depan yang bebas
berputar mengikuti arah gerakan robot. Pusat massa pada
konfigurasi roda tiga terletak pada titik pusat segitiga, sehingga
beban total sebaiknya tidak diletakkan terlalu dekat dengan
roda depan.

(a) Power Steering


(b) Differential Steering
Gambar 1.11. Konfigurasi Sistem Kemudi Beroda Tiga

Selain sistem kemudi yang telah dijelaskan, perancang robot


bebas dalam merancang konfigurasi lainnya. Misalnya dengan
menghubungkan motor ke roda depan atau membuat kedua
roda belakang berputar bebas.
c. Robot Beroda Empat

Dengan penambahan sebuah roda di bagian depan, stabilitas


robot bertambah. Meskipun demikian, perlu diperhatikan
ketika jumlah kontak dengan tanah melebihi tiga,
kesetimbangan hyperstatic sebagai akibat bentuk geometri
memerlukan semacam mekanisme untuk mempertahankan
kontak dalam kasus bidang lintasan tidak rata. Salah satu
mekanisme untuk mengatasi masalah ini adalah dengan
memasang sistem suspensi pada roda. Pusat massa pada
sistem roda empat terletak pada pusat persegi sehingga badan
robot dapat dirancang sedikit lebih besar dari robot beroda
tiga.

33

Sejumlah alternatif sistem kemudi pada robot beroda empat


diantaranya: dua roda belakang yang memiliki motor terpisah
dan dua roda depan yang dapat berputar ke segala arah
(Gambar 1.12 a.), sebuah pasangan sisi roda depan-belakang
dihubungkan ke motor penggerak yang sama dan pasangan sisi
roda lainnya dihubungkan ke motor penggerak terpisah
(Gambar 1.12 b.), dan konfigurasi roda empat yang mengikuti
sistem kemudi mobil yang hanya memerlukan sebuah motor
penggerak dan sebuah servo untuk kemudi (Gambar 1.12 c.).
Kelemahan utama sistem kemudi mobil pada robot adalah
dead reckoning membutuhkan effort yang besar. Dead
reckoning yaitu kemampuan robot untuk menghitung posisi
saat ini relatif terhadap posisi sebelumnya.

a.

b.

c.

Gambar 1.12. Konfigurasi Sistem Kemudi Beroda Empat


d. Robot Roda Berantai

Robot beroda kurang sesuai untuk bidang tidak rata, atau pada
berbagai medan kasar seperti yang terdapat di alam. Untuk
robot yang dikhususkan bergerak pada medan tersebut, dapat
diatasi dengan menggunakan mekanika rantai tank, selain itu
rantai tank dapat melintasi halangan yang ukurannya lebih
kecil dari diameter rantai. Roda berantai juga populer
diterapkan pada tank, bulldozer, traktor, dan tidak jarang pada
mobil untuk melintasi wilayah bersalju. Namun demikian, jika
jenis roda ini dijalankan pada medan kasar akan cepat aus
sehingga memerlukan penggantian.
Sistem kemudi pada kendaraan berantai memiliki prinsip yang
sama dengan differential steering dan disebut sebagai skid
steering. Kemudi diatur dengan menciptakan selisih kecepatan
34

putar rantai antara kedua sisi rantai. Kelemahan dari sistem


roda adalah membutuhkan kerja yang lebih besar untuk
berbelok, sebanding dengan panjang rantai roda yang
terpasang. Selain itu dengan kemampuan motor yang sama
dengan kendaraan beroda, kecepatan total pada kendaraan
roda berantai akan lebih lambat. Semua ini adalah akibat dari
gaya gesek tambahan antara roda dalam dan rantai yang
terpasang.

Gambar 1.13. Sistem suspensi rantai pada tank. (1= roda


belakang bermotor, 2=rantai yang membalut roda, 3=roller
untuk memudahkan rantai berputar, 4= roda depan bermotor,
5=roda netral, 6=idler)
Gambar 1.13 menunjukkan konfigurasi rantai ideal untuk

melintasi berbagai kondisi alam. Konfigurasi rantai ini sesuai


untuk robot yang ditujukan untuk itu seperti tank robot tanpa
awak pada medan perang.

Gambar 1.14. Teletank, tank tanpa awak yang dikontrol dari jauh.
Aktif dipergunakan oleh Uni Sovyet pada masa perang dunia kedua.

Pada buku ini dibahas sebuah aplikasi robot beroda jenis tank
yang
dipergunakan
untuk
memulihkan
jaringan
telekomunikasi. Robot tersebut diberi nama Al-Fath. Roda
pada robot tersebut dilengkapi dengan rantai-roda untuk
melewati daerah jelajah yang sulit akibat rusaknya

35

infrastruktur jalan. Penggunaan robot beroda untuk pemulihan


jaringan telekomunikasi dapat dilihat pada bab 2.
1.3.3.2 Robot Berkaki

Sistem beroda telah banyak diadaptasi pada robot sebagai mekanisme


gerak yang memiliki tingkat efisiensi tinggi pada medan rata. Di sisi
lain, robot berkaki belum banyak dikembangkan karena masalah
kompleks yang tinggi. Meskipun demikian, sistem berkaki memiliki
keunggulan dalam menjelajahi berbagai jenis medan yang sulit
dijelajahi robot beroda ataupun robot berantai, misalnya kondisi
tangga. Tidak jarang pengembang robot menggunakan lokomotif
hybrid dari roda dan kaki sebagai lokomotif alternatif untuk
memaksimalkan potensi gerak dari kedua lokomotif tersebut.
Perusahaan General Electric pada 1968 merupakan yang pertama
dalam mengembangkan mesin berkaki empat yang telah
terkoordinasikan dengan baik dan memperhitungkan event gait.
Setiap kakinya telah memiliki tiga DOF untuk melintasi medan yang
kompleks. Kelemahannya robot ini masih memerlukan kontrol
manual, dengan total 12 derajat kebebasan yang menyebabkan robot
ini sulit dikontrol oleh operator. Robot berkaki pertama, Phoney
Poney dikembangkan oleh McGhee dan Frank pada tahun yang sama
dan telah mengotomasi kontrol menggunakan komputer yang
dihubungkan ke aktuator elektrik. Namun, robot ini hanya dapat
berjalan lurus dan setiap kakinya hanya memiliki nilai DOF dua.
Periode tahun 1950-1970 dianggap sebagai kegagalan dalam
mengaplikasikan lokomosi berkaki.

Gambar 1.15. Replikasi Robot GE pada Musium Transportasi US Army


36

1. Robot Berkaki Satu

Lokomosi kaki untuk bergerak justru sukses dicapai oleh robot


berkaki satu yang tidak memerlukan koordinasi antar kaki. Robot
berkaki
menggunakan
lompatan
untuk
mendapatkan
keseimbangan dinamik dan sebagai mekanisme perpindahan.
Matsuoka pada 1979 mengembangkan robot lompat (monopod).

Gambar 1.16. Monopod

Robot ini menggunakan solenoid elektrik yang memberikan impuls


instan pada kaki. Dengan sistem ini periode diam singkat, untuk 1
lompatan per detik. Selain itu robot ini dapat bergerak majumundur pada medan datar dengan kemiringan 100.
Pengembangan robot lompat kaki satu berikutnya dilakukan
Raibert dari Carnegie Mellon University pada 1983 melalui
Pogostick. Dibandingkan Matsuoka, kaki yang dikembangkan
fleksibel ulurannya, dilengkapi pegas, dan dapat bergerak
menyamping. Robot lompat memiliki dua fase yaitu fase tumpuan
dimana kaki diam dan menyokong berat robot, dan fase melayang
dimana pusat massa berpindah secara balistik dengan adanya
lompatan.
Aplikasi nyata dari robot monopod adalah pengembangan robot
- yang dirancang Russion Mobile Vehicle Engineering
Institute, untuk dikirim ke Phobos pada 1998. Robot yang
bermassa 45 kg ini didesain untuk dapat melakukan eksplorasi,
pengumpulan data, dan mengirim transmisi ke bumi. Namun pada
tugas resminya, robot ini kehilangan kontak saat melakukan

37

penjelajahan di satelit Mars, Phobos dan misi probing dianggap


gagal.
2. Robot Berkaki Dua

Riset lokomosi berkaki dua dibandingkan robot berkaki banyak


memiliki perkembangan yang lebih lama karena menghadapi
kesulitan untuk mendapatkan kontrol yang stabil. Siklus berjalan
dengan dua kaki terbagi dalam dua fase yaitu satu tumpuan dan
dua tumpuan. Diketahui dua tumpuan hanya menempati 20%
waktu dari siklus jalan. Furusho dan Masabuchi pada tahun 1986
memperkenalkan sebuah model robot berjalan dengan lima
tautan, dan model ini tetap dipakai hingga kini.

Gambar 1.17. Model 5 Tautan

Terdapat banyak persamaan gerak robot bipedal, seperti formula


Lagrange dan formula Newton-Euler. Untuk model berjalan lima
tautan, formula Lagrange yang dipakai adalah
( ) " + ( , ) + ( ) +

Dimana M adalah matriks insersia, Z adalah matriks koriolis dan


gaya sentrifugal, N adalah gaya gravitasi, A adalah matriks
konstrain, dan multiplier Lagrange yang bersesuaian, adalah
vektor momen gaya, dan z, z', dan z" masing-masing adalah
koordinat umum, kecepatan dan percepatan.
Salah satu contoh robot bipedal dengan lokomosi bipedal yang
baik adalah robot humanoid Honda. Model P3 yang dikembangkan
38

pada tahun 1986 dengan ide utama kecerdasan dan mobilitas,


sehingga robot ini benar-benar dapat hidup berdampingan dengan
manusia. Hal ini berbeda dengan robot lain yang dikembangkan
untuk aplikasi spesifik. Robot humanoid yang dikembangkan ini
harus memiliki tiga fungsi: kecepatan bergerak 3 km/jam
(manusia), dilengkapi lengan dan tangan, dan mampu melintasi
tangga. Data yang didapat dari pengembangan P3 dipergunakan
untuk pengembangan ASIMO pada tahun 2000 dan baru pada
pengembangan ini, akhirnya ketiga fungsi tersebut dianggap
terpenuhi. Total derajat kebebasan yang dimiliki ASIMO sebanyak
26, diaktuasikan secara elektrik, dan dapat menahan beban 0.5 kg
pada tangannya. Robot ini menyimpan beterai di belakangnya
yang mampu menggerakkannya selama 15 menit. Sakagami dan
timnya memperkenalkan versi evolusi dari ASIMO pada tahun
2002 yang dapat berfungsi sebagai tour guide museum, setelah
dilengkapi dengan sensor audio dan visual, dan sistem pengenalan
isyarat manusia.
Salah satu penerapan dari robot humanoid juga dibahas dalam buku ini.
Robot tersebut digunakan pada Kontes Robot Cerdas Indonesia

(KRCI) dengan kategori pertandingan bola robot soccer.


Pertandingan tersebut menetapkan aturan bentuk robot adalah
robot humanoid berkaki dua. Bagaimana robot humanoid
dirancang sebagai robot soccer lebih jauh dijelaskan pada bab 4.
Robot humanoid pada buku ini juga dipergunakan untuk
mengimitasi gerakan manusia, untuk membatasi permasalahan
imitasi yang dilakukan terbatas untuk sebuah gerakan anggota
tubuh. Penjelasan lebih lanjut mengenai hal ini diterangkan pada
bab 4.
1.3.4 Klasifikasi Robot Bergerak Berdasarkan Medan Jelajah
Berdasarkan medan yang dijelajahi, robot bergerak dapat
diklasifikasikan sebagai berikut.

39

1. Robot Penjelajah Darat


Robot jenis ini mencakup segala jenis robot yang bergerak di
daratan. Karena sifatnya yang relatif mudah dibuat, hampir
sebagian besar robot bergerak termasuk dalam kategori ini.
2. Robot Penjelajah Air
Robot jenis ini mencakup segala robot yang bergerak di
permukaan air, maupun di bawah permukaan air (Gambar 1.18).
Robot air biasanya digunakan untuk keperluan militer,
mengeksplorasi keadaan bawah laut, serta untuk industri seperti
pengeboran minyak dan gas lepas pantai.

Gambar 1.18. HSV Swift (Courtesy of Bluefin Robotics Corporation)

3. Robot Penjelajah Udara


Robot jenis ini mencakup segala robot yang terbang di udara, baik
menggunakan baling-baling, sayap, maupun dorongan roket
(Gambar 1.19). Robot ini paling banyak digunakan untuk keperluan
militer, seperti pesawat tempur ataupun pesawat mata-mata.
Selain itu robot ini juga sering digunakan untuk melakukan
observasi suatu lokasi, melakukan pemetaan suatu daerah, dan
melakukan pencarian suatu objek dari udara.
Robot penjelajah udara lebih mahal dan lebih sulit untuk dibuat
karena harus memperhatikan desain aerodinamik. Namun
demikian robot penjelajah udara memiliki keunggulan
dibandingkan robot darat, dimana robot penjelajah udara lebih
mudah dalam melakukan perpindahan dan dapat berpindah
dengan kecepatan yang lebih cepat.
40

Gambar 1.19. Robot MQ-9 Reaper

Pada buku ini akan dibahas aplikasi dari salah satu robot
penjelajah udara. Robot penjelajah udara yang digunakan adalah
Robot helikopter berbaling-baling empat (quadcopter). Robot
tersebut dipergunakan untuk keperluan pemulihan jaringan
telekomunikasi, deteksi dan pelacakan objek topi, serta
pembentukan formasi robot untuk eksplorasi ruang. Lebih lanjut
mengenai hal tersebut dijelaskan pada bab 3.

1.4 Penelitian Terkini Bidang Robotika

Setelah dipaparkannya beberapa komponen dan jenis robot, pada


subbab ini akan dijelaskan mengenai kemajuan penelitian terkini robot
pada beberapa bidang. Kemajuan penelitian tersebut mencakup
penggunaan kendaraan tanpa awak di darat, robot ikan pendeteksi
polusi di laut, robot medis yang mencakup robot mikro pembunuh sel
kanker dan robot pembantu bedah, dan penggunaan robot berbasis
infrastruktur cloud.
1.4.1 Kendaraan Darat Tanpa Awak
Kendaraan darat tanpa awak atau unmanned ground vehicle (UGV)
merupakan kendaraan darat tak berawak. Kendaraan ini dapat
berjalan tanpa pengendali, sistem pengendali UGV dikendalikan oleh
sistem otonom yang memperoleh informasi mengenai kondisi
lingkungan dari beberapa sensor yang dipasang pada kendaraan
tersebut. Truk otonom yang dibangun tidak hanya dapat berjalan
secara konvoi satu sama lain namun, truk-truk tersebut harus
beroperasi dalam berbagai kondisi lingkungan dan berbagai jenis jalan.
Truk harus dapat beradaptasi dengan kondisi jalanan kota, jalanan
41

pedesaan, dan jalanan berbahaya. Bahkan truk tersebut harus dapat


dengan aman melalui berbagai macam kondisi lingkungan seperti
hujan, salju, debu, dan asap. Salah satu jenis UGV berbentuk truk
berhasil dikembangkan berkat kerja sama antara Oshkosh Defence
dan NREC.
UGV juga mengimplementasikan algoritma untuk mendeteksi
rintangan. Rintangan-rintangan yang dapat diidentifikasi oleh UGV
antara lain lubang, kendaraan lain, dan penghalang. Motion planner
menggunakan informasi ini untuk menghindari rintangan berbahaya,
dan menjaga jarak antara kendaraan yang satu dengan kendaraan lain.
UGV juga melakukan estimasi terhadap ketinggian jalanan. Dengan
estimasi ini UGV dapat mengetahui bagian jalan mana saja yang dapat
dilalui. Oleh sebab itu, berdasarkan estimasi ini motion planner dapat
menentukan apakah kendaraan dapat melalui jalan tersebut dan
melakukan adaptasi terhadap kondisi jalanan yang akan dilalui.
Teknologi sensor UGV Oshkosh Defense dapat juga mengenali
tumpukan pasir atau debu. Dengan bantuan sistem pengenalan
seperti itu, UGV dapat memilah medan jelajah yang layak untuk
dilintasi.
1.4.2 Robot Ikan Pendeteksi Polusi
Robot Ikan merupakan robot yang dilengkapi dengan kecerdasan
buatan untuk mendeteksi polusi pada air laut. Robot ini digerakkan
oleh sebuah baterai yang dapat bertahan hingga 8 jam. Robot ikan ini
dapat bekerja sama secara otonom untuk memeriksa area seluas 1km 2
hingga kedalaman 30 m.
Rancangan berbentuk ikan dipilih sebagai model implementasi robot
ikan, karena ikan memiliki kelebihan dalam hal bermanuver. Masalah
utama yang ditemui pada robot ikan adalah kemampuan komponen
robot ikan agar dapat berenang dalam air. Terdapat tiga macam
pergerakan utama yang dapat dilakukan robot ikan yaitu menjelajah,
bermanuver, dan diam. Pergerakan menjelajah merupakan
pergerakan dari ikan pada kecepatan konstan. Manuver merupakan
cara robot ikan untuk meningkatkan dan menurunkan kecepatan,
merubah arah, dan berenang ke atas dan ke bawah. Mempertahankan
42

posisi diam dalam air merupakan pergerakan hal yang harus dilakukan
robot ini untuk dapat stabil.
Pengembangan kecerdasan robot ikan diimplementasikan pada
individu robot dan pengembangan robot sebagai kawanan. Pada
kondisi dibawah air, robot ikan harus dapat menangani beberapa
masalah antara lain, menghindari rintangan, mengetahui letak
konsentrasi polusi, menjaga komunikasi dengan robot ikan lainnya,
dan melakukan pengisian baterai secara otomatis pada tempat
pengisian baterei.
Robot mempergunakan algoritma PSO (Particle Swarm Optimization)
dan ACO (Ant Colony Optimization). Algoritma PSO akan membantu
para robot ikan untuk dapat menyampaikan infromasi secara swarm,
karena algoritma swarm akan berfungsi lebih efektif dalam
pengambilan keputusan dibandingkan pengambilan keputusan
berdasarkan informasi lokal. Seluruh robot ikan akan berkomunikasi
satu sama lain sehingga informasi dapat didistribusikan secara
keseluruhan dalam satu waktu, hal ini sangat menguntungkan karena
seluruh informasi dapat terangkum dan kita mendapatkan solusi
global yang paling optimal.
1.4.3 Robot Medis
Perkembangan teknologi robotika dalam bidang medis berkembang
dengan sangat cepat, salah satu contoh implementasinya adalah
penemuan robot mikro sebagai alat untuk mengobati penyakit kanker
dan robot yang difungsikan untuk membantu bedah.
1.4.3.1 Robot Mikro Pembunuh Sel Kanker

Ilmuan dari Politeknik Montreal telah meneliti kegunaan robot mikro


sebagai salah satu sarana pembawa obat menuju sel tubuh yang
terserang kanker. Pada saat sekarang ini, obat kanker bekerja dengan
cara memasukkan antibiotik melalui tubuh. Efek dari obat ini tidak
tepat sasaran karena walaupun antibiotik berguna untuk mematikan
sel-sel kanker yang berbahaya, namun dalam perjalanannya menuju
sel yang terkena kanker antibiotik juga dapat tidak sengaja mematikan
sel-sel yang sehat. Oleh karena itu, deperlukan sarana agar anti biotik
43

dapat diinjeksikan dengan tepat pada sel kanker yang memang perlu
di inhibisi perkembanganya.
Tantangan yang cukup besar dalam masalah ini adalah bagaimana kita
dapat merancang sebuah robot mikro yang dapat masuk ke dalam
tubuh manusia untuk melewati pembuluh darah manusia menuju
tepat ke lokasi kanker. Salah satu cara yang paling sederhana untuk
melakukan hal ini adalah dengan cara membuat robot yang terbuat
dari partikel logam dan partikel ini akan diarahkan memanfaatkan
prinsip magnet ke tempat sel kanker tersebut berada. Secara logika
mungkin hal ini dapat dilakukan namun yang menjadi masalah adalah
magnet tersebut harus sangat dekat dengan logam yang ditaruh di
dalam tubuh. Robot hanya dapat mengikuti magnet ketika robot
tersebut dekat dengan permukaan kulit.
Salah satu solusinya adalah dengan menggunakan mesin Magnetic
Resonance Imaging (MRI). Mesin MRI dapat membantu untuk
melakukan navigasi pada robot. Cara kerja mesin MRI adalah dengan
cara membangkitkan konduksi elektromagnetik. Proton yang
dihasilkan oleh mesin, bekerja sebagai batang magnet dan konduksi
eletromagnetik yang dihasilkan oleh mesin MRI bernilai sangat besar.
Tembakan perbedaan sinyal elektromagnetik kepada tubuh manusia
akan menghasilkan "trajectory file" yang dapat digunakan untuk
memproses data kemudian direkonstruksi dalam citra 3 dimensi.
Dalam artikel "Journey to the center of a tumor" yang ditulis oleh
Martel Sylvain, MRI digunakan sebagai sistem navigasi bagi robot
mikro yang berjalan di dalam tubuh makhluk hidup. Kontrol robot
mikro di dalam tubuh makhluk hidup dilakukan dengan cara
mengubah arah medan gradien MRI dengan algoritma yang tepat,
sehingga kita dapat mengontrol robot mikro agar dapat melalui
pembuluh darah dengan aman.
Di alam ini, ternyata telah ada bakteri yang memiliki sifat magnetik.
Salah satunya adalah MC-1, bakteri ini pertama kali ditemukan pada
tahun 1993, bakteri ini merupakan model dari robot mikro. Tubuhnya
memilki panjang 2 m dan memiliki area permukaan untuk
44

menempelkan molekul anti-kanker. Cara bergerak bakteri ini adalah


dengan cara memutarkan buntutnya. Ekor atau flagel dari bakteri ini
bertindak sebagai perahu motor. Kecepatan dari pergerakan bakteri
ini adalah hampir sama dengan kecepatan pesawat Boeing 747, 920
km/jam. Sifat yang terpenting dalam bakteri ini adalah sifat
kemagnetisannya dimana bakteri ini memiliki keahlian untuk
mengikuti magnet bumi, dan memiliki karakteristik seperti jarum
kompas.
Untuk dapat mengontrol bakteri ini peneliti masih menggunakan MRI
sebagai pengendali MC-1, beberapa ekperimen telah dilakukan
menggunakan bakteri ini. Eksperimen ini bertujuan untuk menaruh
obat anti kanker pada hati tikus. Ekperimen ini belum menunjukkan
hasil yang ideal, banyak dari kawanan bakteri tersebut yang mati
ditengah jalan karena besarnya tekanan pada pembuluh darah,
sebelum bakteri dapat menjangkau hati tikus.
Solusi yang telah dipikirkan untuk masalah ini adalah dengan
memasukkan bakteri-bakteri tersebut dekat dengan sumber kanker,
sehingga jarak perjalanan bakteri tidak terlalu jauh dan bakteri dapat
melepaskan anti kanker sebelum bakteri tersebut mati. Solusi kedua
adalah dengan menggunakan pelapis tambahan pada bakteri sehingga
pada saat berjalan di pembuluh darah, bakteri dapat terlindung dari
derasnya tekanan pembuluh darah sehingga dapat sampai ke sel
kanker untuk melepaskan obat anti kanker.
1.4.3.2 Robot Pembantu Bedah

Pada saat sekarang ini, robot juga berperan dalam membantu proses
operasi yang dilakukan oleh dokter. Salah satu robot bantu bedah
yang dibangun oleh peneliti dari London Imperial College adalah robot
i-snake (imaging-sensing-navigated kinematically enhanced). Mereka
membangun robot bantu bedah untuk membantu operasi
laparoscopy. Laparoscopy merupakan operasi yang dilakukan
menggunakan tabung tipis dimana biasanya dilakukan pada organ
bagian perut atau bagian organ pelvis wanita. Laparoscopy berguna
untuk menyelesaikan permasalahan seperti kista. Sampel jaringan
45

pada bagian perut dalam dapat dilihat melalui tabung yang


dimasukkan ke dekat organ tersebut.
Dalam operasi laparoscopy konvensional, dokter bedah akan
membuat sayatan pada tubuh pasien dan memasukkan tabung tipis
yang terdapat kamera mini didalamnya. Dokter bedah kemudian
melihat keadaan organ melalui monitor dan mengatur arah tabung
untuk mendapatkan tampilan visual yang jelas. Dalam operasi
laparoscopy biasanya dokter bedah mengalami masalah pada saat
tangan dokter bergerak ke kanan, terkadang kamera yang ada pada
tabung bergerak ke kiri, begitu juga sebaliknya.
Para peneliti dari London Imperial College berusaha keras untuk
membangun sebuah robot generasi terbaru yang dapat membantu
operasi laparoscopy. Robot tersebut berukuran kecil, memiliki harga
terjangkau, dan dapat terintegrasi dengan sistem komputer. Robot ini
dinamakan I-SNAKE (imaging-sensing-navigated kinematically
enhanced). I-SNAKE memiliki 7 sendi yang saling berhubungan, sendi
ini berguna untuk bergerak secara elastis ketika melewati organ-organ
ditubuh manusia. Fleksibilitas dari I-SNAKE juga sangat membantu
pasien, karena dokter bedah tidak perlu untuk memotong otot atau
merusak jaringan saraf ketika akan memasukkan tabung ke dalam
tubuh, hal ini memberikan efek positif bagi pasien dalam hal
mengurangi rasa trauma pada penyembuhan luka setelah operasi.
Robot I-SNAKE hanya membutuhkan satu kali sayatan saja ditubuh
manusia untuk memasukkan dirinya ke dalam organ tubuh manusia.
Dokter bedah dengan mudah mengontrol I-SNAKE menggunakan
controller.
1.4.4 Komputasi Robot Berbantuan Cloud
Salah satu implementasi kemajuan dibidang robotika adalah
pengembangan bantuan sumber daya web untuk robot berbasis
komputasi cloud. RoboEarth merupakan jaringan basis-data
terintegrasi dimana robot dapat bertukar informasi dan belajar satu
sama lain mengenai perilaku dan keadaan lingkungan disekitarnya.
46

Hingga saat ini robot belum bisa untuk belajar dan beradaptasi
terhadap kondisi lingkungan yang tidak terstruktur. Hal ini disebabkan
karena sistem sangat bergantung pada berbagai kemungkinan situasi
yang akan terjadi. Setiap respon dari robot harus di program secara
lengkap dan sistem robot juga perlu untuk membangun model
lingkungan yang diperoleh dari informasi sensor. RoboEarth
menggunakan prinsip komputasi cloud sebagai media untuk bertukar
informasi dan melakukan komputasi.
Terdapat tiga jenis layanan cloud yang umum disediakan penyedia jasa
komputasi cloud yaitu:
1. Software as a Service (SaaS)
SaaS memungkinkan penggunaan aplikasi yang berjalan dalam
infrastruktur cloud untuk dapat diakses dari berbagai platform
pengguna.
2. Platform as a Service (PaaS)
PaaS memungkinkan pengguna untuk membuat aplikasi dengan
dukungan bahasa pemrograman, API (Application Program
Interface) yang telah disimpan di dalam infrastrukur cloud.
3. Infrastructure as a Service (IaaS)
IaaS merupakan salah satu jenis layanan cloud yang
memungkinkan pengguna untuk melakukan penyediaan sumber
daya komputasi, konfigurasi penyimpanan, akses jaringan untuk
melakukan konfigurasi kemampuan komputasi, melakukan
instalasi dan menjalankan sistem operasi, serta mengekseskusi
aplikasi di dalamnya, sesuai dengan kebutuhan dari pengguna itu
sendiri.
RoboEarth merupakan salah satu implementasi dari PaaS yang
memfokuskan layanan untuk mendukung level pembangunan aplikasi.
Dalam model PaaS, pengembang piranti lunak difasilitasi dengan
pembangunan piranti lunak sesuai dengan model pengembangan di
dalam lingkungan aplikasi cloud. piranti lunak yang terdapat di dalam
model PaaS dapat berupa piranti lunak aplikasi, basisdata, dan
perangkat pengembangan.
47

Salah satu alasan utama pada saat ini robot belum dapat membuat
kontribusi yang cukup besar dalam kehidupan manusia karena
lingkungan kehidupan manusia terlalu besar dan terlalu kompleks
untuk diringkas ke dalam satu robot saja. Oleh karena itu cloud robotic
engine mengakomodir hal tersebut.
RobotEarth menawarkan infrastruktur robot cloud, dimana di
dalamnya merupakan tempat bagi robot untuk melakukan komputasi.
Jika komputasi telah selesai maka state kondisi tersebut dikembalikan
kepada robot. Knowledge di dalam RoboEarth disimpan dalam bentuk
basis data komponen piranti lunak, peta navigasi (lokasi objek, model
peta), pengetahuan tugas-tugas robot (aksi, reaksi, dan strategi
manipulasi, dan model pengenalan objek (citra, model objek).

Gambar 1.20. Lapisan Arsitektur RoboEarth

RoboEarth diimplementasikan berdasarkan tiga lapisan arsitektur. Inti


dari arsitektur RoboEarth adalah lapisan server yang didalamnya
terdapat basis data RoboEarth. Pada basis data ini disimpan model,
termasuk informasi objek, keadaan lingkungan, dan informasi
semantik.

48

1.5 Susunan Buku

Berbagai jenis robot yang sudah dijelaskan pada sub-bab sebelumnya


dikembangkan untuk memenuhi fungsi tertentu dan membantu dalam
aspek kehidupan manusia. Penggunaan robotika sangat beraneka
ragam dan hampir menyentuh seluruh sendi kebutuhan masyarakat.
Pada bab ke 2, penulis akan menjelaskan kegunaan robot beroda
untuk memperbaiki jaringan komunikasi dari daerah yang terkena
bencana alam. Robot ini merupakan robot hasil riset Lab Architecture
and High Performance and Computing Fakultas Ilmu Komputer
Universitas Indonesia. Pada robot ini ditanamkan kecerdasan buatan
untuk dapat membentuk formasi sebagai penghubung jaringan
komunikasi pada daerah bencana.

Gambar 1.21. Robot Pemulihan Jaringan Komunikasi

Bab 3 akan menjelaskan robot penjelajah udara dalam kapasitasnya


sebagai Kendaraan Tanpa Awak (Unmanned Aerial Vehicle), robot
dalam bentuk helikopter dengan 4 baling-baling yang dipergunakan
untuk kepentingan militer. Pada buku ini, akan dibahas penanaman
kecerdasan buatan pada robot UAV untuk mendeteksi objek yang diuji
dalam percobaan secara real time serta permodelan formasi robot
UAV.

49

Gambar 1.22. Robot UAV

Bab 4 akan menjelaskan penggunaan robot berkaki berbentuk


humanoid yang diprogram untuk mensimulasikan permainan sepak
bola yang menjadi salah satu cabang pertandingan di Kontes Robot
Cerdas Indonesia (KRCI). Selain bertindak sebagai pemain sepak bola,
robot humanoid ini juga diprogram untuk dapat menirukan gerakan
manusia.

Gambar 1.23. Robot Humanoid

50

BAB

2|

2. BAB 2| Penerapan Robot Beroda


Pada bab ini kami membahas salah satu aplikasi robot yang digunakan
untuk membantu manusia dalam hal mengurangi dampak buruk yang
diakibatkan oleh bencana alam. Jenis robot yang akan dibahas adalah
robot beroda. Robot ini digunakan untuk memulihkan jaringan
telekomunikasi yang lumpuh di daerah bencana sehingga bantuan
dapat dialirkan dengan lancar dan tepat sasaran.
Untuk memudahkan para pembaca dalam memahami penerapan
robot beroda bagi pemulihan jaringan komunikasi pasca bencana
alam, kami akan memulai pembahasan mengenai latar belakang dan
kegunaan dari robot tersebut. Kemudian, dilakukan pembahasan
mengenai algoritma pergerakan yang digunakan pada robot beroda
untuk membentuk jaringan komunikasi. Algoritma tersebut akan
diimplementasikan dalam bentuk simulasi 3D menggunakan library
Open Dynamic Engine (ODE). Kemudian pembahasan dilanjutkan
dengan proses implementasi algoritma pergerakan tersebut pada
robot beroda riil, robot tersebut diberi nama robot Al-Fath. Dalam
sebuah jaringan komunikasi, diperlukan routing yang efisien dalam
mengirimkan pesan, hal tersebut akan menjadi topik pembahasan
akhir dari bab ini.

2.1 Latar Belakang dan Kegunaan

Bencana merupakan suatu peristiwa buruk yang dapat terjadi tanpa


mengenal ruang dan waktu. Terdapat berbagai bentuk peristiwa yang
dapat dikatakan sebagai suatu bencana seperti gempa bumi, banjir,
maupun gunung meletus. Dampak yang diakibatkan dari bencana ini
pun bermacam-macam antara lain kerusakan bangunan fisik,
51

kerusakan jaringan komunikasi, kerusakan jalur transportasi hingga


timbulnya korban jiwa. Manajemen bencana dapat dilakukan untuk
mengurangi dampak buruk dari bencana alam. Manajemen bencana
merupakan seluruh kegiatan yang meliputi aspek perencanaan dan
penanggulangan bencana, pada sebelum, sesaat dan sesudah terjadi
bencana.
Teknologi informasi dapat membantu proses manajemen bencana,
contohnya peringatan dini (early warning) yang merupakan bagian
dari aspek perencanaan dan penanggulangan bencana pada waktu
sebelum terjadi bencana. Setelah bencana terjadi, maka teknologi
informasi memiliki peran penting agar dunia luar dapat mengakses
lokasi bencana dan dapat memperkirakan seberapa besar dampak
kerusakan maupun korban jiwa di lokasi bencana tersebut. Selain itu,
beberapa hal yang harus diperhatikan pada saat terjadi bencana alam
adalah tetap tersedianya tempat perlindungan/pengungsian yang
layak, air bersih, makanan yang cukup dan berbagai informasi keadaan
sekitar tempat bencana terjadi. Dengan tersedianya informasi yang
cukup maka pihak terkait dapat menentukan tindakan yang tepat dan
meminimalisasi kerugian akibat bencana.

Gambar 2.1. Dampak akibat bencana gempa bumi dan gunung meletus

Bencana alam terkadang merusak beberapa bangunan fisik


komunikasi seperti menara BTS sehingga menimbulkan putusnya
komunikasi antara lokasi bencana dan lokasi di luar bencana.
Minimnya jaringan komunikasi membuat ketidakpastian mengenai
kebutuhan penting bagi korban bencana. Hal tersebut dapat
menghambat penanganan yang tepat, terhadap korban bencana
seperti tertundanya pengiriman bahan bantuan.
52

Gambar 2.2. Contoh menara BTS

Terdapat tiga hal yang menyebabkan kegagalan dalam pengiriman


atau penerimaan informasi di lokasi bencana, yaitu kerusakan fisik
perangkat utama komunikasi, kerusakan perangkat pendukung
komunikasi, dan kepadatan jaringan. Kerusakan bangunan utama fisik
komunikasi berupa rusaknya menara komunikasi, penguat sinyal, dan
lain sebagainya yang membutuhkan waktu yang lama untuk diperbaiki
seperti sediakala. Oleh karena itu, dibutuhkan suatu perangkat
mobilitas yang dapat menggantikan fungsi menara komunikasi dengan
cepat sehingga permasalahan terputusnya jaringan komunikasi dapat
cepat diatasi.
Salah satu solusi yang dapat digunakan untuk mengatasi
permasalahan terputusnya jaringan komunikasi yang diakibatkan
kerusakan infrastruktur telekomunikasi adalah menggunakan robot.
Dengan menggunakan banyak mobile robot yang dilengkapi dengan
BTS portable dan menyebar robot-robot tersebut ke berbagai penjuru
daerah bencana dengan menggunakan algoritma, komunikasi di
daerah bencana dapat dipulihkan. Agar komunikasi dapat pulih
dengan cepat dan efisien, diperlukan suatu algoritma untuk
melakukan penyebaran robot dengan tepat dan efisien. Simulasi
dengan komputer dapat digunakan untuk memeriksa apakah
algoritma yang digunakan dapat berjalan dengan baik atau tidak
dengan biaya yang lebih murah dibandingkan implementasi langsung
di lapangan. Implementasi dengan robot riil juga diperlukan untuk
memastikan bahwa algoritma tersebut benar-benar bisa berjalan
dengan baik jika nantinya digunakan di dunia nyata.

53

2.2 Robot Beroda Al-Fath


Seperti yang sudah dijelaskan pada subbab sebelumnya, mobile robot
dapat digunakan untuk menghubungkan jaringan komunikasi pada
daerah yang terkena bencana. Robot Al-Fath adalah salah satu mobile
robot beroda yang bisa digunakan untuk aplikasi tersebut. Pada bab
ini, spesifikasi detail dan beragam perangkat tambahan yang dipasang
di atas Al-Fath akan dijelaskan. Penggunaan robot Al-Fath pada
simulasi dan implementasi riil akan dijelaskan pada subbab-subbab
berikutnya.
Pada mulanya robot Al-Fath adalah robot yang dikembangkan untuk
kepentingan penelitian pencarian sumber kebocoran gas atau sering
disebut dengan istilah Odor Source Localization (OSL). Perkembangan
selanjutnya pada robot ini telah dilengkapi dengan berbagai macam
sensor dan modul untuk menunjang kepentingan-kepentingan
penelitian di bidang swarm robotic. pada Gambar 2.3 menunjukan
bentuk fisik dari robot Al-Fath dan sensor-sensornya.

Gambar 2.3 Tampilan robot Al-Fath dan sensor-sensornya

2.2.1 Anatomi
Chassis atau badan dari Al-Fath terdiri atas dua bagian, bagian
pertama disebut platform dan bagian kedua disebut layer mekanik.
Platform yang digunakan oleh Al-Fath adalah platform TraxterII yang
dibuat oleh RoboticsConnection. Beberapa keunggulan dari TraxterII
54

adalah bodinya yang kuat dan tahan terhadap guncangan. Selain


platform TraxterII, dua buah layer berbahan acrylic setebal 4mm
digunakan sebagai tempat untuk menopang berbagai perangkat
tambahan robot.
2.2.2 SRF08
SRF08 dipasang di bagian depan dan belakang dari Al-Fath. Sensor ini
digunakan untuk mengecek dan mencegah tabrakan di antara Al-Fath
dengan lingkungannya.

Gambar 2.4 SRF08 dipasang di Al-Fath

2.2.3 CMPS03
CMPS03 Magnetic Compass adalah kompas digital buatan Devantech
Ltd. Kompas digital yang memiliki harga terjangkau ini digunakan
untuk membantu sistem navigasi agar berfungsi dengan baik, efektif,
serta mudah digunakan.

Gambar 2.5 CMPS03 yang dipasang di robot Al-Fath

2.2.4 Controller
Robot Al-Fath memiliki tiga microcontroller. Satu microcontroller
bertugas sebagai pengendali utama yaitu ATMega 2560. Dua
microcontroller lainnya menjadi pengendali sekunder yaitu ATMega8.
55

Microcontroller sekunder digunakan untuk mengontrol motor secara


independen dan melakukan pembacaan pada encoder yang ada di
motor.
2.2.5 TraxterII Brush DC Gearhead Motor (plus Encoder)
Robot Al-Fath menggunakan dua buah motor, satu di kiri dan satu lagi
di kanan, yang digunakan untuk keperluan bergerak. Di dalam motor
sudah terintegrasi encoder yang digunakan untuk mengukur
perpindahan robot. Perpindahan robot ini bisa digunakan untuk teknik
lokalisasi dengan nama dead reckoning. Teknik dead reckoning akan
dijelaskan lebih lanjut di bab implementasi.

Gambar 2.6 Motor pada robot Al-Fath

2.3 Simulasi Pembentukan Jaringan Komunikasi


Menggunakan Open Dynamic Engine
Pemodelan penyelesaian masalah menggunakan simulasi menjadi suatu
kebutuhan penting bagi penelitian. Hal ini dikarenakan penyelesaian
menggunakan robot secara fisik kurang efisien dari sisi waktu dan biaya.
Untuk itu dilakukan pemodelan yang realistis dalam memodelkan
algoritma penyelesaian ini. Pemodelan 3D yang menerapkan prinsipprinsip fisika seperti gaya gesek, gaya berat, momentum, gravitasi, dan
lain sebagainya menjadi salah satu pilihan tepat untuk dapat mendekati
keadaan sebenarnya. Penggunaan 3D ini diharapkan dapat memberikan
hasil yang tidak terlalu berbeda ketika diimplementasikan terhadap
robot sebenarnya. Seluruh proses simulasi dibangun menggunakan
sebuah library Open Dynamic Engine(ODE). Pemilihan library ini didasari
oleh banyaknya fitur-fitur yang disediakan oleh ODE sehingga
memudahkan dalam proses simulasi. Penjelasan lebih lanjut mengenai
ODE terdapat pada subbab 2.4.1. Terdapat beberapa implementasi
simulasi yang akan dibahas pada subbab ini, diantaranya Path Planning,

56

Position by Line, Extended Position by Line, dan Self-Deployment yang


semuanya diperlukan untuk membangun jaringan komunikasi.
2.3.1 Position by Line
Position by line adalah sebuah algoritma yang bekerja dengan
memanfaatkan persamaan garis yang menghubungkan target dalam
suatu garis lurus. Berdasarkan teori geometri, jarak terpendek antara
dua titik adalah garis lurus yang menghubungkan keduanya sehingga
jika algoritma ini dapat menemukan konfigurasi berupa garis lurus
antara kedua target, maka solusi yang ditemukan adalah solusi yang
paling optimum. Persamaan garis lurus yang menghubungkan kedua
titik tersebut dapat diturunkan jika diketahui posisi kedua titik.
Penjelasan mengenai algoritma ini adalah sebagai berikut:
1. Robot otonom memulai simulasi dengan posisi awal yang acak,
sedangkan perangkat pengawas dan objek yang diawasi harus
diketahui posisinya.
2. Robot menyimpan informasi yang dibutuhkannya untuk
melakukan kegiatan eksplorasi, yaitu informasi mengenai posisi
dirinya masing-masing beserta informasi mengenai posisi target,
serta jumlah robot di dalam simulasi. Akan tetapi, robot tidak
mengetahui posisi robot-robot lainnya. Informasi ini diberikan
kepada robot otonom pada fase inisialisasi.
3. Robot memanfaatkan informasi posisi target yang akan
dihubungkan oleh jalur komunikasi, serta informasi radius
sensingarea-nya untuk mengetahui posisi-posisi mana saja yang
akan ditempati oleh semua robot agar dapat ditemukan jalur
berupa garis lurus antara target di dalam simulasi. Posisi-posisi
yang mungkin ditempati ini disebut feasibleposition.
4. Setelah melakukan perhitungan untuk mendapatkan semua
feasible position, robot kemudian menghitung jarak dari posisinya
kepada semua feasible position. Posisi dengan jarak terpendek
kemudian dijadikan prioritas tertinggi, hingga seterusnya sampai
posisi terjauh dengan prioritas terendah.
5. Robot kemudian bergerak mendekati feasible position dengan
prioritas tertinggi. Jika robot tidak dapat mencapai posisi tersebut
57

dikarenakan telah adanya robot lain yang menempatinya, maka


robot menentukan feasible position dengan prioritas tertinggi
berikutnya sebagai posisi tujuan. Robot bergerak menuju posisi
tersebut.
6. Ulangi langkah 5 secara berulang jika robot masih belum berhasil
mencapai posisi yang ditujunya. Jika semua tidak dapat dikunjungi,
maka robot akan berhenti.
Terdapat beberapa asumsi yang digunakan, yaitu sebagai berikut.
1. Spesifikasi robot yang digunakan harus memiliki empat fungsi
utama: Mengenali lingkungan (sensing), dapat berkomunikasi
(communication), dapat berpikir (computation), dan dapat
bergerak (locomotion). Robot hanya dapat berkomunikasi dengan
objek lain yang berada di dalam rentang sensing area-nya.
2. Robot diberikan tambahan informasi mengenai jumlah robot lain
di dalam simulasi pada saat fase inisialisasi.
Gambar 2.7. dapat memperlihatkan skema dasar perhitungan feasible
position dari algoritma ini.

Gambar 2.7. Ilustrasi algoritma Position by Line (Pambudi 2009)

2.3.2 Extended Position by Line


Algoritma ini merupakan pengembangan dari algoritma Position by
Line yang hanya melakukan perhitungan dengan 2 sumber. Untuk
dapat menyelesaikan permasalahan dengan banyak sumber, terdapat
sebuah algoritma baru yang merupakan lanjutan dari algoritma
Position by Line yang sudah dikembangkan sebelumnya. Pada
dasarnya, prinsip yang digunakan pada algoritma ini masih sama
dengan algoritma Position by Line, yaitu dengan menemukan posisiposisi yang layak untuk ditempati oleh semua robot. Dalam kasus
terjadinya bencana diharapkan ditemukan solusi bagi permasalahan
58

konfigurasi jaringan komunikasi yang diharapkan. Adapun cara untuk


menemukan solusi ini adalah dengan merepresentasikan solusi
permasalahan dalam suatu connected graph, akan ditentukan bentuk
konfigurasi graph yang baik untuk digunakan sehingga dapat diperoleh
nilai distance minimum antara semua target yang ada, dengan batasan
nilai cost jumlah robot yang tersedia.
Algoritma dari Extended Position By Line ini adalah sebagai berikut :
1. Hitung jarak antara masing-masing target dalam jaringan yang
akan dicari konfigurasinya. Nilai-nilai ini kemudian akan disebut
sebagai path.
2. Tentukan semua kemungkinan path yang jika dijumlahkan akan
bernilai lebih kecil atau sama dengan nilai cost jumlah robot yang
tersedia.
3. Ambil setiap konfigurasi path yang dapat membentuk connected
graph pada target-target yang akan dihubungkan oleh konfigurasi
jaringan. Konfigurasi ini kemudian akan disebut sebagai solusi
sementara.
4. Tentukan nilai distance dari semua target terhadap target yang
lain. Nilai ini diperoleh dengan menjumlahkan path yang dapat
menghubungkan suatu target terhadap target lain. Jika terdapat
lebih dari satu kemungkinan path, pilih yang jumlahnya lebih
minimum.
5. Jumlahkan semua nilai distance, di mana hasilnya akan
menentukan total distance dari solusi sementara tersebut.
7. Pilih satu solusi sementara dengan total distance yang paling kecil.
Solusi ini kemudian merupakan solusi akhir konfigurasi jaringan
yang dicari.
8. Gunakan algoritma Position by Line untuk menentukan feasible
position pada setiap garis yang termasuk ke dalam solusi
konfigurasi jaringan.
Ilustrasi gambar dari algoritma Extended Position By Line dapat dilihat
pada gambar 2.8 Konsep perhitungan total jarak optimal dari setiap
kemungkinan path yang terbentuk dapat mempergunakan Minimum
Spanning Tree.
59

Gambar 2.8. Ilustrasi pembentukan jalur pada algoritma Extended


Position by Line

2.3.3 Self Deployment


Self Deployment pertama kali dibuat oleh Takahashi, Sekiyama dan
Fukuda pada tahun 2007 (Takahashi, 2007). Algoritma ini berbeda
dengan algoritma Position by Line dan Extended Position by Line dalam
hal strategi pembentukan jaringan. Pada kedua algoritma ini, target
posisi robot telah ditentukan ketika inisialisasi atau awal proses
simulasi. Sedangkan, penentuan target pada algoritma Self
Deployment ditentukan sepanjang simulasi terjadi.
Pseudocode penerapan algoritma ini adalah sebagai berikut:
1. Pada mulanya, robot akan menuju prioritas utama yaitu node yang
terdekat dengan sink. Jika tidak terdapat node yang terdekat
dengan sink, maka robot akan menuju sink.
2. Setelah robot mencapai sink dalam jarak tertentu, maka robot
akan mengubah target ke prioritas utama berikutnya yaitu node
yang terdekat dengan target. Jika tidak ditemukan node yang
terdekat dengan target, maka robot akan menuju menara
komunikasi target.
3. Setelah mencapai jarak threshold untuk komunikasi wireless, maka
robot akan berhenti dan menyebarkan kepada tetangganya bahwa
ia merupakan node dengan prioritas tertinggi yang dekat dengan
target.
4. Sepanjang simulasi, terdapat kemungkinan bahwa robot bertemu
dengan robot lainnya yang telah berada dalam posisi stabil. Ketika
60

hal ini terjadi, maka robot akan berkomunikasi dengan robot


tersebut mengenai sink, target, dan node terdekat dengan target.
Jika ternyata informasi ini sesuai dengan keadaan robot yang
bertanya (sink dan target), maka robot tersebut akan langsung
bergerak menuju prioritas utama berikutnya yaitu node terdekat
dengan target.
5. Sepanjang simulasi, terdapat kemungkinan bahwa robot
mendapatkan informasi dari distancesensor mengenai rintangan.
Untuk itu, robot akan menjadikan algoritma pencegahan benturan
sebagai prioritas utama.
Penentuan sink dan target dari suatu robot diperoleh dengan
memperhatikan jarak terpendek yang dibentuk antar robot dengan
target dan robot dengan sink ketika proses inisialisasi. Menara
komunikasi dengan jarak terpendek ke robot akan menjadi sink dan
menara komunikasi lainnya akan menjadi target. Sedangkan jika
dilihat dari sisi pergerakannya, algoritma Self Deployment ini juga
memiliki perbedaan dalam penerapannya bergantung dari ada atau
tidaknya informasi peta lokasi. Dengan tidak adanya informasi peta
lokasi, pergerakan robot akan menuju target dalam bentuk garis lurus.
Namun, jika informasi peta grid diketahui, robot akan bergerak
menuju suatu target dengan jalur terpendek. Kedua hal ini serupa
pada penerapan algoritma Position by Line.
Pemberitahuan oleh robot ketika telah menempati posisi stabil
dilakukan secara rekursif terhadap seluruh node yang berada dalam
posisi stabil.
2.3.4 Open Dynamic Engine(ODE)
Open Dynamic Engine (ODE) merupakan library untuk mensimulasikan
pergerakan dinamis dari suatu benda sesuai hukum-hukum fisika
(gravitasi, gaya, dan lain-lain). Selain itu, Open Dynamic Engine
fleksibel, cepat dan telah mengimplementasikan collision detection
ketika terdapat benda bertubrukan. Berikut adalah fitur-fitur yang
disediakan oleh Open Dynamic Engine:
1. Distribusi massa suatu benda.
61

2. Tipe engsel yang beragam.


3. Tabrakan pada benda primitif.
4. Metode simulasi : persamaan simulasi diturunkan berdasarkan
model Lagrange multiplier velocity.
5. Pilihan terhadap metode perpidahan antar frame yang bervariasi.
6. Mengimplementasikan gaya gesek dan momentum ketika terjadi
kontak benda.
7. Menggunakan bahasa pemrograman C sebagai interface
utamanya.
8. Mendukung banyak platform dan optimisasi untuk spesifik
platform.

Gambar 2.9. Diagram alur dari arsitektur simulasi Open Dynamic


Engine (R.C Kooijman 2010)

Diagram alur dari arsitektur Open Dynamic Engine ditunjukan pada


gambar 2.9. Terdapat 2 hal penting dalam alur arsitektur ini yaitu
initialization dan simulation loop. Tahapan initialization merupakan
tahapan awal simulasi yaitu menciptakan dunia 3D dan
mempersiapkan beberapa variable/function seperti collision detection,
event handler, gravitasi dan lain-lain. Tahap jalannya simulasi
dilakukan pada tahap simulation loop. Pada tahap inilah obyek-obyek
dapat melakukan pergerakan simulasi pada dunia 3D. Keterkaitan

62

berbagai modul-modul pada Open Dynamic Engine termasuk simulasi


diperlihatkan pada gambar 2.10.
Open Dynamic Engine juga mendukung beberapa tipe obyek geometri
dan tipe engsel (penghubung 2 objek). Perhitungan gaya gesek, ERP
(Error Reduction Parameter) dan CFM (Constraint Force Mixing) juga
merupakan bagian penting dari library Open Dynamic Engine ini.

Gambar 2.10. Diagram alur interaksi berbagai modul pada Open


Dynamic Engine(R.C Kooijman 2010)

2.3.5 Pemodelan Al-Fath dengan Open Dynamic Engine


Seperti yang sudah dijelaskan pada subbab sebelumnya, robot yang
akan digunakan untuk aplikasi pembentukan jaringan adalah robot AlFath. Oleh karena itu, robot Al-Fath perlu dimodelkan secara 3D
menggunakan ODE agar simulasi yang dihasilkan valid. Subbab ini akan
menjelaskan bagaimana memodelkan Al-Fath.
Pemodelan chassis robot Al-Fath pada ODE melalui tahapan
pembentukan objek geometry dan body. Bentuk 3D dari chassis AlFath diperoleh dari perancangan objek robot pada perangkat lunak
Inventor yang dikembangkan oleh Dewanto (Dewanto dan Prasetya,

63

2011). Agar objek dapat digunakan pada ODE, maka file design objek
3D harus melewati beberapa proses.
Proses untuk konversi dari Inventor ke ODE antara lain, ekstraksi
vertex, penyederhanaan faces dan indices, dan konversi format ke
ekstensi .obj.

Gambar 2.11 Model 3D Al-Fath pada software Inventor dan 3DS Max

Berdasarkan hasil percobaan simulasi dengan model pada gambar di


atas yang memiliki vertex sejumlah 10612, simulasi berjalan lambat.
Oleh karena itu, dilakukan penyederhanaan pada objek model untuk
mempercepat jalannya simulasi.

Gambar 2.12 Penyederhanaan model chassis Al-Fath

Hal yang sama juga dilakukan untuk memodelkan roda dari Al-Fath.
Roda sebelumnya didesain menggunakan piranti lunak Inventor dan
kemudian dikonversi ke file .obj. Total vertex pada model roda ini
mencapai 4039.

64

Gambar 2.13 Pemodelan roda pada piranti lunak Inventor dan 3DS Max

Akan tetapi pada saat simulasi pada ODE, bentuk roda disederhanakan
menjadi bentuk silinder. Hal ini dilakukan karena jika tipe geometri
roda adalah trimesh dengan jumlah vertex yang besar, maka contact
area antara lantai dengan roda bisa melibatkan jumlah vertex yang
besar. Hal ini mempengaruhi proses perhitungan matriks dan dapat
meningkatkan error pada saat simulasi.

Gambar 2.14 Pemodelan roda pada ODE sebelum dan sesudah


penyederhanaan

2.3.6 Simulasi Collision Detection


Collision detection merupakan suatu hal yang penting karena pada
simulasi ini diperlukan untuk menentukan pergerakan robot,
memperoleh informasi jarak benda berdasarkan sensor jarak, serta
memperoleh informasi robot atau menara komunikasi yang terhubung
berdasarkan wireless sensor. Perolehan informasi sensor jarak dan
wireless sensor diperoleh dari letak terjadinya gesekan/benturan pada
distancesensor beam atau wireless sensor range.

65

Perolehan data titik tubrukan pada geometri kemudian dikirimkan


kepada obyek robot untuk dihitung jaraknya. Representasi dari titik
benturan yang dimaksud penulis dapat dilihat pada gambar 2.15
dengan bentuk kubus transparan berwarna biru. Persamaan
perhitungan jarak antara titik tubrukan dan titik pusat distancesensor
adalah sebagai berikut:
(y2 y1) + (x2 x1)

Dimana :
(x1, y1) Merupakan titik tubrukan pada distance sensor beam.
(x2, y2) Merupakan titik pusat sensor jarak.

Gambar 2.15 Titik benturan antara distance sensor beam dengan


rintangan

2.3.7 Simulasi Collision Avoidance


Suatu robot akan memprioritaskan untuk menghindari bentuan ketika
benturan terdeteksi oleh sensor jarak. Algoritma yang diterapkan
ketika menghindari benturan tergantung dari informasi yang diberikan
sensor jarak, yaitu jarak serta posisi relatif benturan. Posisi relatif
benturan diperoleh dari letak sensor yang memperoleh titik benturan
sehingga posisi relatif benturan dapat diperkirakan.
Pergerakan robot selanjutnya dipengaruhi oleh arah roda yang hanya
memiliki 2 arah saja, yaitu depan atau belakang. Sedangkan, motor
dari roda berada pada bagian depan saja. Tabel pergerakan robot ke
arah tertentu berdasarkan pergerakan motor dapat dilihat pada Jenis
pergerakan ini dibantu oleh gaya gesek sehingga dapat berbelok ke
arah tertentu. Tabel 2-1. Pergerakan Robot Al-Fath menunjukkan
konfigurasi roda untuk berbelok pada robot Al-Fath.
66

Tabel 2-1. Pergerakan Robot Al-Fath

Tipe Pergerakan
Bergerak Ke Kiri
Bergerak Ke Kanan
Bergerak Ke Depan
Bergerak Ke Belakang

Pergerakan Motor
Depan Bagian Kanan
Depan
Belakang
Depan
Belakang

Pergerakan Motor
Depan Bagian Kiri
Belakang
Depan
Depan
Belakang

2.3.8 Simulasi Path Planning


Algoritma path planning merupakan algoritma yang berfungsi
mencapai target tertentu dengan menghindari rintangan. Penerapan
algoritma path planning pada robot Al-Fath membutuhkan beberapa
informasi yaitu informasi distance sensor, posisi global target, dan
posisi robot Al-Fath. Skema dasar dari penerapan algoritma path
planning ini dapat dilihat pada gambar 2.16. Penerapan algoritma ini
terdiri dari 2 penerapan algoritma dasar yaitu pergerakan robot
menuju suatu titik dalam bentuk garis lurus dan pergerakan robot jika
terjadi rintangan yang terdeteksi oleh sensor jarak.
Pada gambar 2.16 algoritma pergerakan robot diawali dengan
pengolahan informasi distance sensor, posisi global robot, posisi global
target, dan arah robot. Informasi dari sensor jarak dihitung
berdasarkan ada atau tidaknya benturan antara sensor jarak beam
dengan lingkungan. Posisi global robot dan arah robot (localization)
diperoleh menggunakan libraryOpen Dynamic Engine. Sedangkan,
posisi target robot diperhitungkan berdasarkan algoritma pembentuk
jaringan yang akan dijelaskan kemudian. Pada mulanya, akan dicek
apakah terjadi ancaman tumbukan atau tidak berdasarkan informasi
dari sensor jarak. Jika iya, maka algoritma pencegahan benturan akan
dijalankan. Jika tidak, maka akan dihitung posisi relatif target terhadap
robot dan sudut antara target dan robot. Berdasarkan perhitungan
sudut ini, pergerakan dari robot akan ditentukan.

67

Gambar 2.16. Skema pergerakan robot menuju suatu target (Hafidh


2011)

Perhitungan arah dari robot diperoleh berdasarkan quaternion matrix


yang dapat diperoleh dari fungsi yang telah disediakan oleh Open
Dynamic Engine. Quaternion matrix ini kemudian akan diolah untuk
menghitung sudut antara arah robot dengan sumbu-x. Pada simulasi,
representasi arah dengan sumbu-x ini disebut dengan roll.
Seperti yang terlihat pada gambar 2.17 aturan pergerakan ini adalah
sebagai berikut :
1. Jika theta bernilai 0, maka robot bergerak ke arah depan,
2. Jika theta bernilai antara 0 - , maka robot berputar ke arah kiri,
dan
3. Jika theta bernilai antara - 2, maka robot berputar ke arah
kanan.

68

Gambar 2.17. Representasi Roll, Alpha, dan Theta

Hasil algoritma path planning ini dapat dilihat pada gambar 2.18.

Gambar 2.18. Contoh penerapan Path Planning dengan Collision


Avoidance (Hafidh 2011)

2.3.9 Simulasi Position by Line


Pada algoritma Position by Line terdapat 2 fase utama yaitu fase
inisialisasi dan fase iterasi. Fase inisialisasi merupakan fase pemberian
informasi awal kepada masing-masing robot. Informasi tersebut
adalah posisi menara komunikasi, posisi robot, arah robot, dan peta
dari lokasi. Peta dari lokasi merupakan informasi pilihan karena
implementasi beberapa algoritma berbeda dengan tanpa adanya
informasi ini. Namun, implementasi algoritma tersebut tidak
mengurangi konsep algoritma utama pada Position by Line ini.
Sedangkan, fase iterasi adalah fase jalannya simulasi dengan
serangkaian proses.
Penerapan algoritma Position by Line dibedakan berdasarkan ada atau
tidaknya informasi peta dari lokasi. Ada atau tidaknya peta lokasi dan
informasi posisi menara komunikasi menentukan jalur antar menara
komunikasi. Pada skenario tidak diketahuinya keadaan lingkungan
melalui peta, pembentukan jalur dilakukan dengan menarik garis lurus
antar menara komunikasi. Sedangkan ketika informasi peta diketahui,
69

maka jalur yang dibentuk disesuaikan dengan peta dengan melihat


apakah ada rintangan atau tidak di suatu titik tertentu. Jalur yang
dibentuk pun merupakan jalur terpendek antar menara komunikasi
yang hendak dihubungkan.
Pada skenario pembentukan jalur antar menara komunikasi
berdasarkan informasi peta grid, penulis menerapkan algoritma
floodfill dan backtracking untuk menemukan jalur terpendek antar
menara komunikasi. Pseudocode dari algoritma ini adalah sebagai
berikut :
1. Tandai titik awal dengan nilai 0.
2. Tandai 8 titik disekitarnya dengan nilai titik acuan ditambah 1,
dengan syarat sebagai berikut:
a. titik yang hendak ditandai merupakan jalan yang dapat dilalui,
b. titik yang hendak ditandai belum pernah ditandai sebelumnya,
dan
c. jika titik serong yang hendak ditandai maka titik yang terletak
di atas, bawah, kiri, dan kanan titik acuan harus dapat dilalui.
3. Lakukan langkah ke-2 hingga penandaan titik sampai pada posisi
target.
4. Lakukan backtracking berdasarkan urutan nomor dari terbesar ke
terkecil secara berurutan misalnya dari 10, 9, 8, 7, ......., hingga 0.
5. Ilustrasi jalanya algoritma floodfill dan backtracking ini dapat
dilihat pada gambar 2.19. (a), (b), (c), (d), (e), dan (f). Sedangkan,
hasil penerapan pada Open Dynamic Engine dapat dilihat pada
gambar 2.20.

70

Gambar 2.19. Perhitungan jalur terpendek menggunakan algoritma


Flood Fill dan Backtracking

Gambar 2.20. Contoh penerapan jalur terpendek menggunakan Flood


Fill dan Backtracking pada Open Dynamic Engine

Setelah ditentukan jalur antar menara komunikasi, hal yang dilakukan


selanjutnya adalah penentuan lokasi tujuan robot. Penerapan
penentuan lokasi tujuan tanpa adanya informasi peta lokasi dapat
diilustrasikan pada gambar 2.20. Pada mulanya, Al-Fath akan mengolah
informasi letak 2 buah menara komunikasi yang hendak dihubungkan
menjadi titik-titik posisi target (p1 ; p2 ; . . . ; pn). Masing-masing titik
posisi target akan diurutkan berdasarkan jarak posisi tersebut dengan
robot. Posisi target terdekatlah yang akan menjadi target utama robot.
persamaan perhitungan titik posisi target ini berdasarkan persamaan
sebagai berikut :
71

(
(

( ) + ( )
((( ) ))
)=
+
)=

(((

) ))
1

Di mana :
(x , ) merupakan posisi menara komunikasi sink.
( , ) merupakan posisi menara komunikasi target.
d merupakan jarak antara sink dan target.
r merupakan wireless range dari suatu robot.
n merupakan posisi ke-n.
min
merupakan jumlah robot minimal yang dibutuhkan.

Gambar 2.21. Ilustrasi target robot tanpa informasi peta lokasi

Sedangkan untuk perhitungan target dengan diketahui peta dalam


bentuk grid, maka perhitungan dari target tujuan untuk setiap robot
akan menjadi sedikit berbeda. Gambar 2.21 dapat memberikan
ilustrasi mengenai posisi menara komunikasi dan posisi target
berdasarkan jalur yang dibentuk. Persamaan perhitungan dari target
tersebut adalah sebagai berikut :
=

72

((
(
(
(

)^2 + (
+ ) ) =
2 + ) + ((
+ ) 2(
+ ) +
2 + ) + ((
2
+ ) 2(
2 + )+ (
2
+ )2

(1 +

+ (2 + 2

) + (

)=
+ ) +
2 +

)=
=

)=0

Karena persamaan di atas adalah persamaan kuadrat sehingga dapat


dicari solusinya dengan mensubsitusikan nilai A,B, dan C ke
persamaan:
,

( (
2

Persamaan diatas akan memberikan 2 buah nilai x, maka diperlukan


pengecekan terhadap nilai x yang terletak diantara pasangan titik
pusat tile yang dipilih. Setelah nilai x ditemukan, maka nilai y dapat
diperoleh hanya dengan dengan mensubstitusi nilai x ke persamaan
garis awal atau persamaan lingkaran. Ilustrasinya dapat dilihat pada
gambar 2.22 dan gambar 2.23.

Gambar 2.22. Ilustrasi target robot dengan informasi peta lokasi

73

Gambar 2.23. Perpotongan antara lingkaran dan garis

Pada Open Dynamic Engine, penerapan kedua algoritma untuk


menentukan posisi target robot yang telah dijelaskan sebelumnya
dapat dilihat pada gambar 2.24 (a) dan (b).

(a)Tanpa Informasi Peta

(b) Berdasarkan Informasi Peta

Gambar 2.24. Penerapan penentuan posisi target algoritma Position by


Line pada Open Dynamic Engine

Setelah melakukan perhitungan jalur serta posisi target pada masingmasing robot, maka robot akan bergerak menuju posisi target
berdasarkan jalur terpendek ke posisi terdekat. Pada skenario peta
yang tidak diketahui, robot akan bergerak berdasarkan garis lurus
menuju target posisi dengan menggunakan algoritma path planning
yang telah dijelaskan sebelumnya. Sedangkan pada skenario peta yang
diketahui berupa grid, robot akan menghitung jalur terpendek menuju
posisi terdekat. Posisi terdekat dihitung berdasarkan algoritma flood
74

fill dan backtracking ke semua titik target yang diperoleh. Tampilan


ketika robot menuju target utama dengan kedua skenario ini dapat
dilihat pada gambar 2.25 (a) dan (b).

(a)Tanpa Informasi Peta

(b) Berdasarkan Informasi Peta

Gambar 2.25. Path Planning menuju posisi stabil pada Open Dynamic
Engine

Setelah menempati posisi stabil, terdapat kemungkinan bahwa robot


lainnya menuju posisi yang sama dengan robot ini. Oleh karena itu,
antar robot diperlukan komunikasi untuk menentukan apakah posisi
target dari suatu robot telah ditempati oleh robot lain atau tidak.
Ketika suatu robot menemukan bahwa lokasi yang ditujunya sudah
ditempati robot lain, maka robot akan menuju target lainnya yang
terdekat dengan posisi robot saat itu. Penentuan posisi terdekat
ditentukan dari jarak robot dengan posisi target berikutnya, tetapi
pada kondisi peta grid yang diketahui, jarak terdekat ditentukan dari
algoritma flood fill.
2.3.10 Simulasi Extended Position by Line
Penerapan algorima Extended Position by Line dimaksudkan untuk
mengatasi kurangnya implementasi pada algoritma Position By Line
untuk kasus di mana menara komunikasi lebih dari 2. Implementasi
algoritma ini bertujuan untuk menentukan pasangan menara
komunikasi yang seharusnya dihubungkan sehingga diperoleh hasil
optimum yang dapat dibentuk. Oleh karena itu, masalah ini dapat
direduksi menjadi masalah pembentukan Minimum Spanning Tree dari
suatu complete graph yang dibentuk dengan menara komunikasi
75

sebagai vertex. Setelah dibentuk pasangan menara komunikasi dengan


jarak terkecil, maka langkah selanjutnya adalah melakukan algoritma
Position By Line untuk setiap pasang menara komunikasi. Diagram alur
dari penerapan algoritma ini dapat dilihat pada gambar 2.26.

Gambar 2.26. Diagram alur algoritma Extended Position by Line

Pembentukan complete graph pada algoritma pembentuk jaringan


tanpa informasi peta dan dengan informasi peta memiliki perbedaan
dalam menentukan bobot suatu edge. Pada kondisi tanpa informasi
peta, bobot dari edge diperoleh dari jarak antara satu vertex ke vertex
lainnya dalam bentuk garis lurus. Sedangkan pada kondisi peta
diketahui, penentuan bobot edge diperoleh dari bobot shortest path
yang diperoleh oleh algoritma floodfill. Perhatikan gambar 2.27 untuk
contoh penerapan Extended Position by Line dan gambar 2.28 (a) dan
(b) untuk hasil penerapannya pada Open Dynamic Engine.

Gambar 2.27. Contoh Penerapan Algoritma Extended Position By Line

76

(a) Tanpa Informasi Peta

(b) Dengan Informasi Peta

Gambar 2.28. Contoh penerapan algoritma Extended Position by


Linepada Open Dynamic Engine

Algoritma Minimum Spanning Tree yang dipilih oleh penulis adalah


algoritma Prim. Algoritma ini terbukti cukup efisien dengan
kompleksitas yang terbaik.
2.3.11 Simulasi Self Deployment
Penerapan algoritma Self Deployment Takahashi, Sekiyama, dan
Fukuda berbeda dengan algoritma Position by Line dan Extended
Position by Line dalam hal strategi pembentukan jaringan. Pada kedua
algoritma ini, target posisi robot telah ditentukan ketika inisialisasi
atau awal proses simulasi. Sedangkan, penentuan target pada
algoritma Self Deployment ditentukan sepanjang simulasi terjadi.
Pseudocode penerapan algoritma ini pada Open Dynamic Engine
adalah sebagai berikut:
1. Pada mulanya, robot akan menuju prioritas utama yaitu node yang
terdekat dengan sink. Jika tidak terdapat node yang terdekat
dengan sink, maka robot akan menuju sink.
2. Setelah robot mencapai sink dalam jarak tertentu, maka robot
akan mengubah target ke prioritas utama berikutnya yaitu node
yang terdekat dengan target. Jika tidak ditemukan node yang
terdekat dengan target, maka robot akan menuju menara
komunikasi target
3. Setelah mencapai jarak threshold untuk komunikasi wireless, maka
robot akan berhenti dan menyebarkan kepada tetangganya bahwa
77

ia merupakan node dengan prioritas tertinggi yang dekat dengan


target
4. Sepanjang simulasi, terdapat kemungkinan bahwa robot bertemu
dengan robot lainnya yang telah berada dalam posisi stabil. Ketika
hal ini terjadi, maka robot akan berkomunikasi dengan robot
tersebut mengenai sink, target dan node terdekat dengan target.
Jika ternyata informasi ini sesuai dengan keadaan robot yang
bertanya (sink dan target), maka robot tersebut akan langsung
bergerak menuju prioritas utama berikutnya yaitu node terdekat
dengan target.
5. Sepanjang simulasi, terdapat kemungkinan bahwa robot
mendapatkan informasi dari sensor jarak mengenai rintangan.
Untuk itu, robot akan menjadikan algoritma pencegahan benturan
sebagai prioritas utama.
Penentuan sink dan target dari suatu robot diperoleh dengan
memperhatikan jarak terpendek yang dibentuk antar robot dengan
target dan robot dengan sink ketika proses inisialisasi. Menara
komunikasi dengan jarak terpendek ke robot akan menjadi sink dan
menara komunikasi lainnya akan menjadi target. Sedangkan jika
dilihat dari sisi pergerakannya, algoritma self deployment ini juga
memiliki perbedaan dalam penerapannya bergantung dari ada atau
tidaknya informasi peta lokasi. Dengan tidak adanya informasi peta
lokasi, pergerakan robot akan menuju target dalam bentuk garis lurus.
Namun, jika informasi peta grid diketahui, robot akan bergerak
menuju suatu target dengan jalur terpendek. Kedua hal ini serupa
pada penerapan algoritma Position by Line. Hasil simulasi pergerakan
ini dapat dilihat pada gambar 2.29.

78

(a) Tanpa Informasi Peta

(b) Dengan Informasi Peta

Gambar 2.29. Implementasi algoritma Takahashi, Sekiyama, dan


Fukuda pada Open Dynamic Engine

Pemberitahuan oleh robot ketika telah menempati posisi stabil


dilakukan secara rekursif terhadap seluruh node yang berada dalam
posisi stabil. Ilustrasi ini dapat dilihat pada gambar 2.30. Pada simulasi
ini, pemberitahuan informasi melalui wireless connection ini tidak
menggunakan metode routing protocol standar dan tidak mempertimbangkan waktu delay.

Gambar 2.30. Proses Pemberitahuan Posisi Robot

Terdapat dua buah skenario pada algoritma sehingga suatu menara


komunikasi dapat dikatakan terhubung satu sama lain. Pada skenario
pertama, robot berusaha menghubungkan antara menara komunikasi
sink menuju menara komunikasi target, tanpa ada robot lain yang
menghubungkan dari menara komunikasi sebaliknya. Pada skenario
ini, suatu menara dianggap telah terkoneksi ketika robot terakhir pada

79

prioritas telah terhubung dengan menara komunikasi target. Ilustrasi


gambar dapat dilihat pada gambar 2.31.

Gambar 2.31. Skenario pertama terkait keterhubungan antara menara


komunikasi pada algoritma Self Deployment

Skenario berikutnya adalah ketika terdapat beberapa robot yang


menghubungkan menara komunikasi antara sink dan target serta
beberapa robot lainnya yang menghubungkan menara komunikasi
antara target dan sink. Akibatnya, terdapat kemungkinan bahwa
robot-robot tersebut bertemu pada suatu titik ditengah-tengah
menara komunikasi sink dan target. Dalam skenario ini, antar robot
akan berkomunikasi untuk menyatakan bahwa menara komunikasi
telah terhubung dan siap melakukan pertukaran informasi antar
menara komunikasi. Ilustrasi gambar dari skenario ini dapat dilihat
pada gambar 2.32.

Gambar 2.32. Skenario kedua terkait keterhubungan antara menara


komunikasi pada algoritma Self Deployment

2.4 Implementasi Riil Robot


Setelah proses simulasi selesai dengan hasil simulasi yang baik, maka
tahapan selanjutnya adalah mengimplementasikan seluruh rancangan
sistem secara riil pada robot. Subbab ini akan menjelaskan mengenai
proses implementasi riil algoritma pembentukan jaringan dengan
menggunakan robot Al-Fath. Penjelasan lebih lanjut mengenai robot
80

Al-Fath dapat ditemukan pada subbab 2.5.1. Selain itu dijelaskan juga
algoritma-algoritma yang diimplementasikan pada robot Al-fath,
diantaranya adalah algoritma sink localization PSO untuk mencari
posisi menara BTS. Pada akhir subbab ini dibahas beberapa kendala
yang dihadapi pada saat implementasi riil yang tidak ditemui pada saat
simulasi.
2.4.1 Particle Swarm Optimization
Particle swarm optimization(PSO) adalah sebuah teknik komputasi
yang diperkenalkan oleh R.C. Eberhart dan J. Kennedy pada tahun
1995 (Wu, 2011). PSO adalah sebuah algoritma pencarian yang
melibatkan sebuah populasi yang berbasis simulasi perilaku sosial dari
burung, lebah atau ikan (Yun et al,. 2010). Algoritma PSO menentukan
bagaimana velocity vector diperbaharui. Aturan pembaharuan velocity
vector pada PSO ditunjukkan oleh persamaan (2.1) sedangkan posisi
individu tersebut diperbaharui dengan persamaan (2.2).
=

( ). (

)+

( ).

(2.1)
(2.2)

Berikut adalah penjelasan masing-masing variable yang terlibat dalam


Persamaan (2.1) dan Persamaan (2.2).
: Velocity vector individu ke-i pada iterasi ke n+1
: Velocity vector individu ke-i pada iterasi ke-n
: Konstanta penentu bobot komponen kognitif individu
: Konstanta penentu bobot komponen sosial
: Posisi local best individu ke-i pada iterasi ke-n
: Posisi global bestindividu ke-i pada iterasi ke n
: Posisi individu ke-i pada iterasi ke-n
(): Fungsi random yang menghasilkan bilangan 0-1
: Posisi individu ke-i pada iterasi ke-n
: Posisi individu ke-i pada iterasi ke n+1
: Constriction factor
PSO sering digunakan untuk menemukan solusi dari sebuah
persamaan matematis. Namun, pada perkembangannya banyak
81

dikembangkan aplikasi PSO dalam berbagai bidang termasuk robotika,


seperti pencarian sumber gas atau bau yang dikenal dengan istilah
odor source localization (OSL) (Pambudi, 2009). Secara umum cara
kerja metode ini adalah dengan selalu memperbaharui posisi local
best dan global best kemudian memperbaharui velocity vector hingga
kondisi terminasi dicapai. Berikut ini beberapa kondisi yang
menyebabkan metode PSO terhenti (Pambudi,2009):
1. Waktu pencarian sudah melebihi batas waktu yang ditentukan
Batas waktu ini digunakan untuk mencegah robot melakukan
pencarian terlalu lama. Jika waktu yang digunakan robot dalam
pencarian solusi melebihi batas waktu tertentu, pencarian tidak
perlu dilanjutkan lagi.
2. Solusi telah ditemukan
Biasanya digunakan suatu nilai ambang batas (threshold) untuk
menentukan apakah sebuah solusi telah ditemukan.
3. Tidak ada peningkatan dalam beberapa iterasi
Jika tidak ada peningkatan dalam beberapa iterasi tertentu, ada
indikasi bahwa tidak ada individu yang melakukan pergerakan
atau PSO telah menuju titik konvergen.
Algoritma PSO ini dipakai untuk fase lokalisasi, menentukan posisi
robot pada environment, dan ketika robot bergerak. Ketidakpastian
atau error yang terjadi pada robot karena ketidaksempurnaan
pembacaan sensor ataupun presisi pergerakan roda diharapkan dapat
diatasi dengan algoritma PSO.
2.4.2 Dead Reckoning
Dead reckoning adalah suatu prosedur matematis untuk menentukan
posisi sebuah kapal pada suatu saat menggunakan pengetahuan
mengenai posisi sebelumnya dan perkiraan perpindahan yang dialami
kapal tersebut dalam suatu periode waktu (Siegwart, 2004). Prosedur
ini juga dapat diterapkan pada mobile robot untuk memperkirakan
posisi mobile robot menggunakan sebuah sensor.

82

Gambar 2.33. Quadratic Optical Encoder (Siegwart, 2004)

Sensor yang digunakan disebut encoder, sensor ini merupakan sebuah


alat yang digunakan untuk menerjemahkan perputaran roda menjadi
pulsa listrik. Terdapat tiga buah keluaran yang masing-masing
menghasilkan jenis pulsa yang berbeda. Secara umum bentuk
keluarannya seperti ditunjukan pada gambar 2.33. Pada keluaran A dan
B menghasilkan pulsa yang sebenarnya identik tetapi berbeda fase
sebesar 90 derajat dan keluaran I menghasilkan sebuah pulsa hanya
ketika roda telah berputar sebesar 360 derajat. Dengan menghitung
banyaknya pulsa yang dihasilkan, kita dapat memperkirakan besar
perpindahan linier roda. Prosedur yang digunakan untuk menentukan
posisi robot jika posisi robot diketahui sebelumnya adalah sebagai
berikut:
1. Misalkan posisi robot dan orientasi robot saat ini adalah
( , , ). Kemudian dalam suatu interval waktu tertentu robot
melakukan sebuah pergerakan.
2. Roda kanan dan kiri robot berputar dan encoder menghasilkan
pulsa masing-masing
dan
Untuk menghitung
,
, .
perpindahan linear masing-masing roda digunakan Persamaan
(2.3) dan Persamaan (2.4).
adalah diameter roda dan
adalah
resolusi encoder, yakni banyaknya pulsa yang dihasilkan dalam
satu putaran.
3. Perpindahan titik pusat robot (centerpoint) dapat dihitung
menggunakan Persamaan (2.5).
4. Orientasi robot setelah pergerakan dapat dihitung dengan
menghitung perubahan arah hadap robot menggunakan
Persamaan (2.6) kemudian menambahkan perubahan tersebut
terhadap orientasi robot sebelumnya menggunakan Persamaan
83

(2.7). Simbol
pada Persamaan (2.6) adalah jarak wheelbase,
yakni jarak antara titik kontak roda kanan dan roda kiri.
5. Koordinat robot setelah pergerakan dapat dihitung menggunakan
Persamaan (2.8) dan Persamaan (2.9).

= ,
=
+
=
+
=
+

(2.3)
(2.4)
,

/2

(2.5)
(2.6)
(2.7)
(2.8)
(2.9)

2.4.3 Perangkat Komunikasi Robot Al-Fath


Untuk keperluan komunikasi dengan sesama anggota kawanan, robot
Al-Fath dilengkapi dengan modul komunikasi XBee yang mengimplementasikan protokol komunikasi Zigbee. Zigbee adalah sebuah
protokol komunikasi untuk komunikasi jarak dekat yang beroperasi
pada frekuensi 2.4 GHz. Frekuensi Zigbee sama dengan frekuensi yang
digunakan dalam standar Wi-Fi sehingga bisa terpengaruh oleh sinyal
dari modul Wi-Fi di sekitarnya. Untuk mengatasi ini, frekuensi tersebut
dibagi menjadi 16 channel. Untuk mengatasi collision pada paket
apabila paket tidak berhasil dikirimkan dilakukan pengiriman ulang.
Penggunaan daya pada Zigbee juga relatif kecil dan berbagai macam
tipe jaringan bisa dibentuk secara otomatis degan standar Zigbee.
Banyak percobaan localization dalam wirelesensor network
menggunakan standard Zigbee maupun modul yang mempunyai basis
yang sama dengan Zigbee karena harganya yang murah dan
ketersedian modul yang mudah didapatkan.
Salah satu modul yang sering digunakan adalah modul X-Bee IEEE
802.15.4. Modul ini menggunakan standar komunikasi yang sama
dengan Zigbee tanpa implementasi protokol pembentukan jaringan.
Modul X-Bee sangat cocok untuk kepentingan localization karena
dimensinya yang kecil dan harganya yang relatif murah. Gambar 2.34.
menunjukkan bentuk fisik dari X-Bee.

84

Gambar 2.34. Bentuk fisik X-Bee

Pada saat transmisi data akan terjadi proses modulasi untuk


menggabungkan frekuensi yang digunakan dengan sinyal digital yang
telah dikonversikan ke sinyal analog. Setelah itu, hasil modulasi akan
dikirim ke antena untuk menghasilkan gelombang elektromagnetik
transmisi. Sedangkan pada saat menerima paket, gelombang
elektromagnetik akan ditangkap oleh antena receiver yang kemudian
didemodulasi untuk memisahkan frekuensi gelombang carrier dengan
sinyal analog yang dikirim oleh transmitter. Kemudian sinyal analog ini
diubah menjadi sinyal digital agar bisa diproses oleh robot.
Salah satu kelebihan modul X-Bee ini adalah kemampuan untuk
melakukan pengukuran kuat sinyal dari paket yang diterima. Besaran
kuat sinyal ini biasa disebut dengan istilah Received Signal Strength
Indicator (RSSI). Nilai RSSI bisa digunakan untuk menentukan posisi
suatu node dengan memanfaatkan kaitan antara jarak dan nilai RSSI.
Beberapa teknik yang umumnya digunakan untuk penentuan posisi
suatu node tanpa melakukan pergerakan diantaranya dikembangkan
oleh Yuan Xu, Juergen Graefenstein, dan peneliti lain (Graefenstein,
2008), (Graefenstein, 2009), (Xu, 2011), (Luo, 2010), (Azenha, 2010).
Gambar 2.35. menunjukkan hasil pengukuran sinyal selama 24 jam.

85

Gambar 2.35. Hasil Pengukuran Kuat Sinyal Selama 24 jam (Janire


Larranaga, 2010)

2.4.4 Implementasi Arsitektur Mobile Robot


Autonomous mobile robot yang dikembangkan akan berkoordinasi
satu sama lain untuk mencapai tujuannya. Oleh sebab itu, diperlukan
komponen-komponen penunjang fungsi koordinasi tersebut. Gambar
2.36. menunjukkan gambar arsitektur sistem secara umum.

Gambar 2.36. Arsitektur sistem secara umum


86

Seperti terlihat pada gambar tersebut, terdapat sebuah program yang


digunakan untuk memonitor pergerakan robot yang berjalan di atas
sebuah PC. Program tersebut dikembangkan dengan bahasa Java
sehingga bisa dijalankan di berbagai macam platform. Selain untuk
monitoring, PC tersebut terhubung ke sebuah perangkat USB-to-Serial
Converter yang kemudian terhubung ke sebuah modul X-Bee Wireless.
Modul X-Bee yang terhubung ke PC tersebut berfungsi sebagai BTS
(Base Transceiver Station) yang mengirimkan paket-paket periodik
secara broadcast. Paket yang dikirimkan BTS berisi identifier dan posisi
BTS tersebut. Dalam paket yang sama juga terdapat informasi
mengenai identifier dan posisi BTS yang ingin disambungkan dengan
BTS tersebut. Hal ini diperlukan agar robot-robot mengetahui posisi
BTS-BTS yang ingin dihubungkan. Ilustrasi sistem komunikasi antar
robot dan antara robot dengan BTS digambarkan oleh gambar 2.37.

Gambar 2.37. Sistem komunikasi robot dengan BTS

Pada sistem ini, setiap robot adalah sebuah agent autonomous di


mana keputusan pergerakan dan seluruh algoritma terdapat di robot
itu sendiri, bukan di PC. Dengan demikian semua data di sensor diolah
pada microcontroller yang ada di robot.

87

2.4.5 Perangkat Lunak


Salah satu perangkat lunak penunjang penelitian ini adalah sebuah
program monitoring yang disebut Real Time Al-Fath Monitor. Program
ini bisa digunakan untuk mengetahui pergerakan robot pada setiap
iterasi. Berikut ini adalah tampilan perangkat lunak yang
dikembangkan.

Gambar 2.38 Tampilan antar muka Real Time Al-Fath Monitor

Program ini memiliki tiga fitur utama antara lain:


1. Menampilkan posisi robot secara real time.
Fitur ini bekerja dengan cara menerima posisi yang dikirim robot
lalu menampilkannya secara dua dimensi dan menampilkan posisi
robot dalam koordinat x dan y. Skala yang digunakan adalah
adalah 1:60, yaitu satu grid pada program yang sama dengan 60
cm di dunia nyata.
2. Memberikan posisi BTS kepada seluruh robot.
Pemberian posisi BTS perlu dilakukan pengaturan dengan cara
memasukan koordinat BTS dalam format x,y kedalam textfield.
Setelah memasukan koordinat BTS, klik tombol send BTS info
agar program ini dapat digunakan.
3. Melakukan uji coba koneksi antara BTS melalui mobile note berupa
robot Al-Fath.
88

Beberapa pengaturan yang harus dilakukan antara lain, pertama


kita harus memilih serial port yang terhubung pada modul X-Bee.
Kedua, tekan tombol connect/disconnect agar terhubung
dengan perangkat X-Bee. Status akan menunjukan apakah
program telah terhubung atau belum dengan perangkat X-Bee.
2.4.5.1. Real Time Operating System (RTOS) pada Al-Fath
Pada penelititan ini digunakan sebuah RTOS open source bernama
FreeRTOS. RTOS ini mendukung berbagai macam arsitektur
microcontroller dan kodenya bersifat terbuka sehingga modifikasi
dapat dilakukan sesuai kebutuhan. Modifikasi dilakukan pada file
port.c dan port.h. Selain fungsi yang digunakan untuk contex-save
dan contex-restore, modifikasi juga dilakukan pada setting timer yang
digunakan untuk menghasilkan tick interrupt dalam RTOS. Secara
umum program yang dibuat dibagai menjadi 5 task yang berbeda,
diantaranya:
1. vMainTask
Task ini berisi algoritma utama yang digunakan, yakni sink
localization menggunakan PSO dan algoritma Position by Line.
2. vUpdatePos
Task ini menjalankan algoritma dead reckoning untuk
memperbaharui posisi robot selama melakukan navigasi.
3. vTXService
Task ini melakukan pengiriman data posisi robot, nilai local best
position robot, posisi local best, posisi robot saat ini, dan indeks
target posisi yang sudah ditempati pada algoritma PBL.
4. vRXService
Task ini melakukan pengecekan apakah terdapat paket dari robotrobot lain maupun BTS.
5. DebugService
Task ini digunakan untuk melakukan debugging dengan mencetak
variabel-variabel penting ke layar LCD.
2.4.5.2. Penentuan Posisi Robot dan Orientasi
Implementasi algoritma particle swarm optimization dan Position by
Line membutuhkan informasi posisi robot pada setiap langkah. Pada
89

robot Al-Fath, terdapat sensor penghitung perputaran roda, yang juga


disebut encoder. Sensor ini mengubah perputaran roda menjadi pulsa
listrik yang kemudian dijadikan masukan ke microcontroller untuk
menghitung perpindahan robot. Spesifikasi sensor encoder dari robot
Al-Fath ini ditunjukkan oleh gambar 2.39. Pada gambar tersebut
ditunjukkan tampilan motor yang digunakan dari berbagai macam
sudut beserta spesifikasi teknis encoder yang tergabung dengan motor
tersebut.

Gambar 2.39. Spesifikasi motor dan encoderrobot Al-Fath (Dewanto


2010)

Pada saat pertama kali dijalankan, diasumsikan bahwa robot sudah


mengetahui posisi dirinya sendiri, data posisi tersebut disimpan di
dalam EEPROM. Perhitungan pergerakan akan dimulai ketika robot
mulai bergerak. Posisi robot sendiri direpresentasikan dalam suatu
grid yang setara dengan 10 cm sedangkan untuk posisi arah robot
direpresentasikan dalam satuan kelipatan 45 derajat sehingga
didapatkan 360/45 = 8 arah hadap robot seperti yang terlihat pada
Gambar 2.40.

90

Gambar 2.40. Representasi arah terhadap robot

2.4.5.3. Sistem Navigasi


Pergerakan yang dilakukan robot adalah melakukan navigasi point-topoint, pergerakan ini memungkinkan robot untuk bergerak dari suatu
koordinat tertentu saat ini menuju koordinat tujuan. Pergerakan ini
dibagi menjadi dua tahapan, yakni pengaturan arah hadap dan
pergerakan maju lurus hingga mencapai titik tertentu. Navigasi perlu
diakhiri apabila salah satu dari beberapa hal berikut ini terjadi:
1. Terdapat penghalang di depan robot
Sebelum melakukan pergerakan pada setiap langkah, robot akan
melakukan pembacaan sensor jarak dan menentukan apakah
terdapat suatu obyek di depan robot tersebut.
2. Posisi target yang dituju sudah ditempati oleh robot lain
Setiap kali sebuah robot telah menempati suatu posisi target,
robot akan memberi tahu posisi yang telah ditempatinya ke robotrobot yang lain melalui perangkat wireless yang ada
2.4.5.4. Pengaturan Modul X-Bee
Terdapat beberapa mode operasi yang dapat dipilih untuk suatu
modul. Secara umum, terdapat 2 jenis jaringan yang dapat dibentuk
oleh modul X-Bee 802.15.4 ini yaitu Peer to peer dan Non-Beacon with
coordinator. Pada penelitian ini penulismenggunakan mode pertama
dengan tujuan agar setiap node dapat berkomunikasi dengan semua
node yang berada didalam jangkauan tanpa perlu adanya penentuan
coordinator.
91

2.4.5.5. Implementasi X-Bee 802.15.4 API


Terdapat dua cara penggunaan modul X-Bee, yakni transparent mode
dan Application Programming Interface (API) mode. Transparent
mode memungkinkan penggunaan modul X-Bee berlaku layaknya
perangkat wireless UART biasa. Pada mode ini tidak ada format paket
tertentu untuk melakukan komunikasi, pengguna bebas menentukan
paket yang digunakan. Namun, pada mode ini jika kita ingin mengubah
alamat tujuan pengiriman paket, maka kita harus masuk ke AT-mode,
yakni sebuah sub-mode dari mode transparent untuk melakukan
konfigurasi. Mode yang lain adalah Application Programming Interface
(API) mode yang memungkinkan pengiriman ke alamat-alamat yang
berbeda tanpa harus memasuki mode kongifurasi AT. Setiap data yang
dikirim harus berupa sebuah paket yang formatnya telah ditentukan
oleh API.
2.4.5.6. Pembatasan Jangkauan Komunikasi
Pada kondisi nyata posisi antara robot terpisah cukup jauh sehingga
bisa saja terjadi kehilangan komunikasi antar robot namun hal ini
cukup sulit untuk dilakukan pada proses penelitian karena
membutuhkan area yang sangat luas untuk mensimulasikannya.
Perangkat komunikasi yang dipasangkan pada robot memiliki
jangkauan efektif sekitar 100 meter line of sight. Penggunaan tiga
buah robot pada pengujian paling tidak membutuhkan area percobaan
300 meter sehingga untuk memudahkan pengujian maka dilakukan
pembatasan jangkauan komunikasi dengan menggunakan pendekatan
piranti lunak.
Telah dijelaskan sebelumnya bahwa jarak antar BTS sekitar 720 cm
dengan jumlah robot 3 buah sehingga posisi ideal yang paling efektif
memiliki jarak antara robot dengan robot atau robot dengan BTS
sekitar 180 cm. Gambar 2.41. berikut ini adalah gambaran lebih jelas
mengenai posisi akhir ideal hasil pencarian.

92

Gambar 2.41. Posisi akhir robot yang diharapkan setelah algorima


Position by Line

Uji coba lain dilakukan untuk mengetahui keterkaitan antara kekuatan


sinyal dari paket yang diterima dengan jarak antara node pengirim dan
node penerima. Pengujian dilakukan dengan mengukur nilai RSSi pada
jarak 0 hingga 3 meter dengan interval sebesar 0.6 meter.
Pengukuran dilakukan dengan 4 variasi orientasi dengan 4 arah mata
angin dan untuk setiap arah dilakukan sampling 10 kali. Gambar 2.42
merupakan grafik hasil pengujiannya, terlihat bahwa terdapat kaitan
yang hampir linear antara kedua variabel tersebut. Kaitan tersebut
bisa dimanfaatkan untuk menentukan batas ambang kekuatan sinyal
untuk komunikasi efektif.

Gambar 2.42. Kaitan antara sinyal X-Bee dengan jarak

93

2.4.6 Implementasi Algoritma Sink Localization dengan Particle


Swarm Optimization
Pada penelitian ini digunakan varian PSO yang dilengkapi dengan
mekanisme detect and respond. Detect and respond dalam hal ini
berarti dilakukan pendeteksian kondisi lingkungan, kemudian robot
melakukan suatu respon untuk menangani kondisi tersebut. Inti dari
algoritma PSO adalah pembaharuan velocity vector robot. Rumusan
perhitungan velocity vector disederhanakan mejadi persamaan
berikut:
=

( ). (

)+

( ).

Digunakan nilai c1 dan c2 yang sama, yakni nilai 1. Hal ini


mengakibatkan faktor kognitif (individu, c1) mempunyai bobot yang
sama dengan faktor sosial (c2). Penyesuaian lain adalah pembatasan
perhitungan velocity vector. Bilangan acak pertama dan kedua
mempunyai nilai yang berbeda dan dihasilkan dengan pseudorandom
generator yang ada pada library C standar.
1. Pembatasan Velocity Vector
Implementasi PSO dalam simulasi pada umumnya tidak
membutuhkan batasan kecepatan karena partikel dianggap dapat
berpindah tempat secara tiba-tiba. Namun, dalam implementasi
pada robot, terdapat batasan-batasan tertentu yang harus
dipenuhi agar PSO dapat berjalan dengan baik terutama dalam
konteks robot Al-Fath.
Velocity vector diterjemahkan sebagai vektor perpindahan yang
diinginkan dari posisi sekarang. Robot akan berusaha untuk
bergerak menuju posisi yang baru. Namun, jika perpindahan yang
dimungkinkan tidak dibatasi, maka bisa jadi robot melakukan
perpindahan yang cukup jauh sehingga iterasi berikutnya terjadi
setelah waktu yang lama. Agar pergerakan dalam PSO dapat
berjalan secara lebih dinamis, perpindahan robot dibatasi hanya
sejauh 8 grid atau sekitar 80 cm setiap iterasi. Selain pembatasan
kecepatan, pembatasan arah sudut juga dilakukan. Sudut hasil
perhitungan velocity vector akan dibulatkan ke sudut kelipatan 45
94

derajat terdekat. Pembatasan ini sejalan dengan pembatasan arah


hadap untuk sistem navigasi yang dijelaskan pada sub-bab
sebelumnya.
2. Representasi Local Best dan Global Best
Implementasi PSO pada penelitian ini menggunakan nilai RSSI
sebagai kriteria keberhasilan penemuan BTS. Pada penjelasan
sebelumnya telah diketahui bahwa nilai RSSI berkaitan langsung
dengan jarak antar node X-Bee.

Gambar 2.43. Pergerakan pembaharuan nilai dan posisi Local Best

Setiap robot mempunyai nilai dan posisi local best masing-masing.


Nilai local best adalah nilai yang RSSI paling kecil dari setiap paket
dari BTS yang pernah diterima robot. Nilai ini diperbaharui setiap
kali robot menerima paket dari BTS seperti yang terlihat pada
Gambar 2.43. BTS akan mengirim paket-paket secara periodik ke
semua node yang ada di sektira BTS. Pada penelitian ini
diasumsikan hanya salah satu BTS yang melakukan pengiriman
paket secara broadcast. Informasi local best pada setiap robot
akan dibagikan ke robot-robot lain sehingga setiap robot dapat
mendapatkan informasi local best dari semua robot yang lain
melalui modul X-Bee. Setiap robot kemudian akan menentukan
global best, yang merupakan nilai local best dari semua robot
termasuk dirinya sendiri yang paling minimum. Tujuan utama
algoritma sinklocalization menggunakan PSO ini adalah untuk

95

menemukan area di sekitar BTS yang memungkinkan komunikasi


efektif berjalan.
2.4.7 Implementasi Algoritma Position by Line Pada Robot Al-Fath
Tahapan selanjutnya adalah mengimplementasikan Algoritma Position
by Line. Tahapan ini dilakukan setelah robot berhasil mencapai jarak
komunikasi efektif dengan salah satu BTS, robot akan mendapatkan
informasi mengenai posisi kedua BTS yang ingin dihubungkan secara
wireless. Dalam mengimplementasikan algoritma ini perlu dilakukan
beberapa tahapan. Tahapan pertama adalah penentuan posisi-posisi
target atau feasible position. Gambar 2.44. merupakan gambar
ilustrasi dari feasible position.

Gambar 2.44. Feasible position dalam algoritma Position by Line

Pada tahapan kedua dilakukan pergerakan menuju target. Langkah ini


dilakukan untuk mencapai titik feasible position yang sudah
ditentukan pada tahapan pertama. Robot melakukan navigasi keposisi
paling dekat dengan robot. Pengukuran posisi paling dekat dilakukan
dengan menghitung Euclidean distance antara posisi robot dengan
setiap feasible positions. Pada saat bernavigasi robot juga melakukan
pengecekan apakah posisi yang dituju sudah ditempati oleh robot lain
atau belum, jika sudah maka robot akan berhenti dan menuju pada
titik feasible position yang lain.
2.4.8 Hasil Implementasi
Pada bagian selanjutnya akan dibahas hasil pengujian dan
pengembangan sistem Autonomous Mobile Robot (AMR). Pengujian
sistem AMR dilakukan pada sebuah ruangan berukuran 10 x 10
meter. Pada ruangan tersebut hanya terdapat beberapa robot Al-Fath
96

dan dua buah kotak yang dianalogikan sebagai BTS. Gambar 2.45.
dapat mendeskripsikan mengenai area pengujian.

Gambar 2.45. Pengaturan Area Uji Coba

Dari hasil pengujian dapat di simpulkan bahwa algoritma


sinklocalization dan Position by Line telah berhasil diimplementasikan
dan diujicobakan. Nampak pada gambar tiga buah robot dan dua buah
balok sebagai representasi BTS-BTS yang ingin dihubungkan. Kedua
BTS tersebut ditempatkan pada dua ujung ruangan dan robot akan
berusaha membentuk garis lurus antara dua buah BTS tersebut.

97

Gambar 2.46. Snapshot pergerakan robot pada uji coba

Pada Gambar 2.46. menunjukan hasil pengujian, tampak pada gambar


(a) kondisi awal robot yang diletakan secara acak. Pada gambar (b) dan
(c) tampak robot sedang mencari posisi yang tepat untuk
menyambungkan dua buah BTS dan gambar (d) robot berhasil
membentuk formasi garis lurus sejajar dengan BTS.
Pada proses pengujian terdapat beberapa kendala yaitu pergerakan
robot yang tidak presisi, penggunaan sensor jarang yang jumlahnya
terbatas sehingga memungkinkan terjadinya tabrakan pada saat
pengujian seperti yang terlihat pada gambar 2.47.

Gambar 2.47. Tabrakan antara dua robot Al-Fath

98

Kendala yang lain yaitu data hasil pengukuran kompas sangat


terpengaruh dengan keadaan lingungan sehingga terjadinya kesalahan
penentuan posisi robot terhadap BTS (Gambar 2.48).

Gambar 2.48. Pengujian kompas yang dipengaruhi benda disekitarnya

Selain itu, hal lain yang menjadi kendala adalah terjadinya packet
droppada saat proses komunikasi. Terjadinya packet drop
menyebabkan data-data informasi mengenai posisi robot dan update
posisi local best dan global best terlambat. Hal ini menyebabkan
sistem tidak responsif dan waktu yang dibutuhkan untuk mencapai
tujuan menjadi lebih lama.

2.5 Protokol Routing


Routing adalah proses untuk memilih rute mana yang akan dilalui
pada sebuah jaringan ketika suatu paket lewat. Penggunaan protokol
routing yang tepat dapat meningkatkan kemampuan jaringan dalam
mengirimkan data.
Dengan menggunakan mobile robot dipakai sebagai agen sekaligus
router untuk menyambungkan jaringan, jaringan komunikasi dapat
dipulihkan dengan bantuan teknologi mobile ad-hoc network (MANET)
Protokol routing yang berjalan di atas MANET disebut ad-hoc routing
protocol. Beberapa ilmuwan telah mem-propose beberapa algoritma
protokol routing dengan berbagai pertimbangan.
Subbab ini akan menjelaskan mengenai arsitektur sistem MANET itu
sendiri, lalu protokol routing yang berjalan diatasnya, dan beberapa
jenis protokol routing yang tersedia. Protokol routing ini akan
99

membuat pemulihan jaringan yang dilakukan robot menjadi lebih


powerful jika algoritmanya dipasangkan di robot.
2.5.1 Mobile ad-hoc Network
Mobile ad-hoc Network (MANET) adalah jaringan yang memungkinkan
setiap node yang terhubungkan oleh sebuah wireless link dapat
bergerak bebas, sehingga perubahan topologinya bersifat konstan
(Bresciani, 2008). Mobile ad-hocnetwork (MANET) terdiri atas
beberapa mobilehost yang dapat saling berkomunikasi. Sebuah mobile
ad-hocnetwork juga dapat mempunyai akses ke beberapa host lain
dalam infrastruktur, tergantung pada tipe dari mobile ad-hoc network
tersebut. Pemanfaatan mobile ad-hocnetwork ini diantaranya adalah
untuk proses koordinasi regu penyelamat pada saat terjadinya
bencana, serta sebagai sarana informasi bagi kalangan militer di
daerah pertempuran.
MANET memiliki kemampuan self-configured. Kemampuan tersebut
memungkinkan MANET mengkonfigurasikan dirinya sendiri untuk
beradaptasi dengan lingkungan di mana dia berjalan dan kemampuan
untuk mencari dan mempertahankan rute jaringan walaupun host dari
MANET tersebut mengalami perubahan topologi (Deza, 2009).

Gambar 2.49. Topologi MANET

Gambar 2.49. menunjukkan sebuah topologi dari MANET, dimana


terdapat kumpulan mobilenode yang dapat saling berkomunikasi satu
sama lainnya. Setiap mobilenode mempunyai range transmisi yang
terbatas, sehingga node-node tersebut mengandalkan teknologi
routing untuk dapat saling berkomunikasi dengan node lainnya.
100

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 OnDemand 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

BAB

3|

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
Super Heavy
Heavy
Medium
Light
Micro

Rentang berat
>2000 kg
200 2000 kg
50 200 kg
5-50 kg
<5 kg

Contoh UAV
Global Hawk
A-160
Cypher
Neptune
Dragon Eye

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 informasiinformasi 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 balingbaling 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
bawaan

Bentuk

Baterai

Kecepatan
Sistem pengamanan

Perangkat pendukung

ARM9 468 MHz


DDR 128 Mbyte at 200MHz
Wifi b/g
USB high speed
Linux OS
Berat:
380 gram tanpa pelindung
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 adhoc. 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 ARDrone

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) 45 0, (b) 90 0, dan (c) 315 0

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 10 o, 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
=

b. Kovarian
=

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

11

1
11

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 missclassification 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
c.

( , )=

1+

Gain factor (penurunan fungsi sigmoid)


= ( , )(1 ( , ))

d. Update bobot

133

( )=

(4.1)

(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 missclassification 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
W22

W11

W12

W1n

W2n-1

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:
=

=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 parameterparameter 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
Sensor kanan
Sensor kiri
Sensor depan

Aksi yang dilakukan


Bergeser ke kiri
Bergeser ke kanan
Balik arah ke belakang

148

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 sensorsensornya.
3.4.3.3

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

posisi quadcopter sebelumnya menyusuri koordinat y. Quadcopter


ini selanjutnya akan mendapatkan sinyal wireless dari quadcopter
di depannya, dimana isinya merupakan koordinat sumbu y dari
quadcopter pengirim. Quadcopter kemudian akan melakukan
perhitungan jarak antara posisinya dengan posisi quadcopter di
depannya dengan menggunakan rumus euclidean metric. Ketika
keduanya mencapai jarak aman yang sudah dihitung sebelumnya,
quadcopter tersebut akan berhenti, dan memberikan notifikasi
kepada quadcopter sebelumnya, bahwa posisi sudah ditetapkan,
sehingga quadcopter sebelumnya akan menghentikan pengiriman
koordinat posisinya. Setelah itu, quadcopter akan mengirimkan
koordinat posisinya kepada quadcopter seterusnya. Pseudocode
untuk algoritma posisi quadcopter adalah sebagai berikut:
ambil posisi quadcopter
ambil posisi target objek
jarak = akar ((x quadcopter - x target objek)^2)
if (jarak <0.2 and x quadcopter > target posisi)
set posisi ke x target objek + 0.2, y target objek, z
target objek
else
kirim koordinat posisi ke quadcopter selanjutnya dan
selesai
end

Tahapan tersebut kembali berulang di quadcopter berikutnya,


hingga semua quadcopter sudah bergerak dan berhenti di
tempatnya masing-masing. Dengan begitu, pola garis akan
terbentuk.
Setelah pola garis terbentuk, yang ditandai dengan berhentinya
quadcopter terakhir, quadcopter terakhir akan memberikan
notifikasi ke quadcopter di depannya melalui jaringan wireless
bahwa pola garis sudah terbentuk. Quadcopter di depannya
tersebut nantinya akan menerima notifikasi itu, dan
meneruskannya ke quadcopter di depannya lagi, dan seterusnya
sampai quadcopter kepala menerima notifikasi tersebut. Ketika
quadcopter kepala sudah menerima notifikasi tersebut,
151

quadcopter kepala akan melanjutkan proses pembentukan formasi


ke tahap pembuatan pola lingkaran (gambar 3.30).

Gambar 3.30. Ilustrasi Pola Garis yang Terbentuk

2. Formasi Lingkaran
Pembuatan pola lingkaran dimulai dengan dilakukannya
penetapan pola lingkaran yang akan digunakan, yaitu seberapa
besar lingkaran yang akan dibentuk nantinya. Besarnya lingkaran
ditentukan dari seberapa banyak quadcopter yang akan membuat
formasi, serta dari seberapa jauh jarak antar quadcopter yang
diinginkan. Jarak antar quadcopter memiliki keunggulan dan
kelemahan tersendiri, tergantung dari lingkungan yang akan
dijelajahi nantinya.
Pada pembuatan formasi yang menggunakan 6 quadcopter di
percobaan kali ini, akan digunakan lingkaran dengan jari-jari
berukuran 1.2 unit. Ukuran tersebut diukur berdasarkan ukuran
koordinat yang terdapat di V-REP. Jarak tersebut digunakan agar
formasi quadcopter tersebut mendapatkan ruang pandang untuk
eksplorasi yang cukup besar.
Setelah ukuran lingkaran ditentukan, quadcopter akan
menentukan posisi pemberhentiannya pada lintasan lingkaran.
Posisi tersebut ditentukan oleh pembagian secara merata dari
keseluruhan lintasan dengan jumlah quadcopter. Dalam percobaan
ini, pembagian lintasan diwakili dengan pembagian derajat dari
keseluruhan lintasan lingkaran, yaitu 3600. Dengan pembagian
tersebut, setiap quadcopter akan memiliki jarak yang sama antar
152

quadcopter yang bersebelahan. Jika dituliskan, rumusnya adalah


sebagai berikut.
Quadcopteri =

xi

Di mana i merupakan nomor quadcopter yang dimulai dari 0, dan n


merupakan jumlah keseluruhan quadcopter.
Setelah semua data yang dibutuhkan tersebut telah didapatkan,
quadcopter lalu akan menetapkan titik sumbu dari pola lingkaran
yang akan dibentuk. Titik sumbu berada segaris dengan pola garis
yang sudah terbentuk sebelumnya. Bila digambarkan, posisi dari
pola lingkaran yang akan dibentuk akan berada tepat diatas pola
garis yang sudah terbentuk.
Dengan aturan tersebut, maka titik sumbu x dari pola lingkaran
merupakan posisi sumbu x dari quadcopter kepala ditambahkan
dengan jari-jari dari pola lingkaran dan titik sumbu y dari pola
lingkaran merupakan posisi y dari quadcopter kepala. Dalam notasi
matematika dapat ditulis sebagai berikut:
Posisi sumbu x pusat lingkaran = posisi sumbu x quadcopter + jarijari lingkaran
Posisi sumbu y pusat lingkaran = posisi sumbu y quadcopter

Setelah data-data yang dibutuhkan tersebut telah didapatkan


semuanya, maka quadcopter kepala akan memulai pergerakannya.
Pergerakan yang dilakukan quadcopter kepala adalah bergerak
secara perlahan melintasi lintasan lingkaran. Pergerakan tersebut
dilakukan dengan menggunakan algoritma circular movement yang
terlihat pada gambar 3.31.

153

Gambar 3.31. Pergerakan Lingkaran

Dalam teknis pelaksanaannya, quadcopter kepala akan mulai


bergerak dari bagian terbawah dari lintasan lingkaran, kemudian
terus berputar ke kanan atas sambil menelusuri lintasan. Lintasan
lingkaran dibentuk dari titik tengah sumbu x ke arah kiri sehingga
sudut 00 merupakan bagian atas dari lintasan lingkaran. Untuk
memulai pergerakan dari bawah, maka quadcopter kepala akan
memulai pergerakan dari posisi yang bersesuaian dengan sudut 1800, dan terus ke atas dengan penambahan 100 setiap iterasinya.
Pseudocode dari tahapan ini adalah sebagai berikut:
ambil posisi quadcopter
ambil posisi target objek
jarak = akar ((x quadcopter - x target objek)^2)
if (jarak <0.3)
posisi x baru = pusat lingkaran x + (jarijari*(cos(sudut dalam radian))
posisi y baru= pusat lingkaran y + (jarijari*(cos(sudut dalam radian))
sudut = sudut + perubahan sudut
if (sudut==160) then
selesai
if (sudut==-120) then
kirim perintah ke quadcopter selanjutnya dan
selesai
end
set posisi quadcopter ke posisi x baru, posisi y
baru, z target objek
end

Quadcopter kepala nantinya akan memberikan instruksi ke


quadcopter selanjutnya untuk memulai pergerakan ketika ia sudah
bergerak selama 1.5 satuan waktu simulasi (sekitar 6 detik waktu
154

normal). Waktu tersebut merupakan perkiraan waktu aman


dimana quadcopter berikutnya tidak akan dapat mengejar
quadcopter sebelumnya jika terdapat selisih waktu sebesar itu.
Quadcopter kepala akan terus melanjutkan pergerakannya
menyusuri lingkaran setelah mengirimkan instruksi tersebut, dan
baru akan berhenti ketika posisi perhentian yang sudah dihitung
sebelumnya tercapai.
Quadcopter-quadcopter selanjutnya akan mengikuti langkahlangkah yang dilakukan oleh quadcopter kepala sebelumnya dan
berhenti pada posisi perhentiannya masing-masing yang sudah
dihitung sebelumnya.
Pembuatan pola lingkaran ini (Gambar 3.32) akan berakhir ketika
quadcopter terakhir sudah berhenti di posisinya. Ketika hal itu
terjadi, quadcopter terakhir akan memberikan pemberitahuan
kepada quadcopter kepala melalui jarungan wireless. Ketika
quadcopter kepala menerima pemberitahuan ini, maka quadcopter
kepala akan memulai tahap selanjutnya, yaitu pembuatan formasi
poligon. Pseudocode pengecekan apakah quadcopter terakhir
sudah berhenti serta pemberitahuannya ke quadcopter kepala
adalah sebagai berikut:
if (kecepatan quadcopter sumbu x <0.10) and kecepatan
quadcopter sumbu y <0.10 and kecepatan quadcopter sumbu z
<0.10) then
kirim pemberitahuan ke quadcopter kepala
end

155

Gambar 3.32. Ilustrasi Pola Lingkaran yang Terbentuk

3. Formasi Poligon
Pembuatan formasi poligon dilakukan dengan menggunakan
persamaan periodik tertentu sesuai dengan bentuk formasi
poligon yang diinginkan. Persamaan periodik itu nantinya akan
menentukan peran yang akan dijalankan oleh quadcopter.
Penentuan peran dilakukan dengan cara memetakan setiap
quadcopter ke suatu nilai persamaan periodik tersebut dengan
menggunakan rumus yang akan dirancang nantinya. Nilai setiap
quadcopter akan dibandingkan dengan tetangga di sebelah kiri dan
kanannya. Jika nilai persamaan suatu quadcopter lebih tinggi dari
tetangganya, maka quadcopter tersebut akan menjadi sudut.
Sebaliknya, jika nilainya lebih rendah, maka quadcopter tersebut
akan menjadi garis.
Setiap formasi yang dibentuk akan mempunyai persamaan
periodik masing-masing. Persamaan periodik yang digunakan
dipilih dengan menyesuaikan jumlah sudut dari formasi poligon
yang ingin dibuat dengan jumlah puncak gelombang yang ada dari
suatu persamaan periodik. Salah satu fungsi periodik yang cukup
mudah untuk digunakan adalah fungsi sin , dimana jumlah
puncaknya dapat diketahui dari variabel yang ada di depan
Quadcopter yang ada nantinya akan dipetakan pada persamaan
periodik tersebut, dengan menggunakan rumus pemetaan yang
disediakan khusus untuk suatu formasi poligon tertentu.

156

Dalam percobaan ini, formasi poligon yang akan dibentuk adalah


formasi segitiga dan formasi jajar genjang. Fungsi periodik yang
digunakan merupakan fungsi sin karena fungsi tersebut cukup
sederhana dan sudah mencukupi kebutuhan untuk membentuk
formasi segitiga dan jajar genjang. Kedua formasi ini akan dibentuk
dengan tahapan yang berbeda satu sama lainnya. Tahapan masingmasing formasi tersebut akan dijelaskan di bawah ini.
4. Formasi Segitiga
Formasi segitiga dibentuk dengan menentukan peranan setiap
quadcopter, yaitu quadcopter mana yang akan menjadi sudut, dan
quadcopter mana yang akan menjadi garis. Ketika peranan sudah
ditentukan, quadcopter yang menjadi sudut akan bergerak mundur
menyesuaikan diri menjadi sudut, sedangkan quadcopter yang
menjadi garis akan berada tetap pada posisinya semula seperti
yang terlihat pada gambar 3.33.

Gambar 3.33. Proses Perubahan Formasi dari Pola Lingkaran ke


Pola Segitiga

Formasi segitiga merupakan formasi yang memiliki tiga titik sudut.


Karena itu, dibutuhkan fungsi sin yang mempunyai 3 puncak
gelombang, yaitu fungsi sin 3 . Setelah fungsi ditetapkan, tahapan
selanjutnya adalah menentukan rumus untuk melakukan
pemetaan quadcopter ke fungsi periodik.
Rumus pemetaan didapatkan dengan menghitung posisi tiap
quadcopter dengan menambahkan selisih dari pembagian sudut
pola lingkaran dengan tiap quadcopter secara merata, kemudian
menggesernya hingga nilai hasil pemetaan dari quadcopter
157

pertama sesuai dengan nilai puncak pertama dari grafik yang


terbentuk. Dengan adanya rumus ini, nantinya algoritma
pembentukan formasi ini bisa digunakan untuk pembentukan
formasi dengan jumlah robot yang lebih banyak lagi. Hasil
pembagian sudut pola lingkaran dengan enam quadcopter adalah
600, dan puncak pertama dari grafik Sin 3 adalah 300. Karena itu,
rumus pembagian digeser 300 kebelakang, sehingga didapatkan
rumus:
360
=
30
Dimana qi adalah quadcopter ke i dan n adalah jumlah quadcopter.

Setelah rumus didapatkan, maka dilakukan pemetaan


menggunakan rumus tersebut untuk masing-masing quadcopter
terhadap grafik sin 3, dan kemudian dihitung perbandingan nilai
setiap quadcopter dengan tetangganya masing-masing. Hasil
pemetaannya bisa dilihat pada gambar 3.34.

Gambar 3.34. Hasil Pemetaan Quadcopter pada Grafik Fungsi sin


3

Dari hasil perbandingan nilai, terlihat bahwa quadcopter yang


nilainya lebih tinggi dari tetangga di sebelahnya adalah quadcopter
pertama, ketiga, dan kelima. Oleh karena itu, quadcopter tersebut
akan berperan sebagai sudut. Sedangkan quadcopter sisanya, yaitu
quadcopter kedua, keempat, dan keenam, akan berperan sebagai
garis.
158

Pergerakan menuju formasi segitiga dimulai dengan diberikannya


perintah untuk membentuk formasi pada quadcopter yang
bertindak sebagai sudut. Perintah dikirimkan secara broadcast
menggunakan jaringan wireless oleh quadcopter kepala. Ketika
quadcopter yang berperan sebagai sudut menerimanya, maka
quadcopter tersebut akan mundur menyesuaikan posisinya
menjadi sudut.
Quadcopter akan bergerak mundur tegak lurus terhadap garis
pusat. Karena sebelumnya quadcopter berhenti pada posisi yang
sudah ditetapkan pada pola lingkaran, maka target posisi
pergerakan mundur untuk membentuk sudut tersebut bisa
didapatkan dengan memperbesar jari-jari dari pola lingkaran
sebelumnya, sesuai dengan jarak mundur yang diinginkan. Dengan
begitu, prosesnya bisa menggunakan algoritma circular movement
yang sudah dipakai sebelumnya.
posisi x baru = pusat lingkaran x + (jari-jari + jarak
mundur*(cos(sudut quadcopter berhenti))
posisi y baru= pusat lingkaran y + (jari-jari + jarak
mundur*(cos(sudut quadcopter berhenti))
set posisi quadcopter ke posisi x baru, posisi y baru, z
target objek

Setelah semua quadcopter selesai bergerak, maka terbentuklah


formasi segitiga.
5. Formasi Jajar Genjang
Secara umum, tahapan pembentukan formasi dari lingkaran ke
jajar genjang sama dengan tahapan pembuatan formasi dari
lingkaran ke segitiga yang sudah dibahas sebelumnya.
Perbedaannya hanya terletak pada perbedaan fungsi sin yang
digunakan serta perbedaan rumus pemetaannya. Ilustrasi
pembentukan formasi jajar genjang dapat dilihat pada gambar 3.35.

159

Formasi jajar genjang merupakan formasi yang memiliki empat


titik sudut. Karena itu, dibutuhkan fungsi sin yang mempunyai 4
puncak gelombang, yaitu fungsi sin 4 .

Gambar 3.35. Proses Perubahan Formasi dari Pola Lingkaran ke


Pola Jajar Genjang

Rumus pemetaan didapatkan dengan cara sebelumnya yang


digunakan pada pembentukan formasi segitiga, yaitu melakukan
pembagian sudut pola lingkaran secara merata dengan jumlah
quadcopter yang digunakan. Kemudian menggeser hasil
pemetaannya hingga quadcopter pertama berada pada posisi
puncak gelombang pertama. Hasil pembagian sudut pola lingkaran
dengan enam quadcopter adalah 600, dan puncak pertama dari
grafik Sin 4 adalah 32.50. Karena itu, rumus pembagian digeser
37.50 kebelakang, sehingga didapatkan rumus:
360
=
30
Di mana qi adalah quadcopter ke i dan n adalah jumlah
quadcopter.

Setelah rumus didapatkan, maka akan dilakukan pemetaan


masing-masing quadcopter terhadap grafik sin 4, dan kemudian
dihitung perbandingan nilai setiap quadcopter dengan tetangganya
masing-masing. Hasil pemetaannya bisa dilihat pada gambar 3.36.

160

Gambar 3.36. Hasil Pemetaan Quadcopter pada Grafik Fungsi sin


4

Dari hasil perbandingan nilai, terlihat bahwa quadcopter yang


nilainya lebih tinggi dari tetangga di sebelahnya adalah quadcopter
kedua dan kelima. Oleh karena itu, quadcopter tersebut berperan
menjadi sudut. Sedangkan quadcopter sisanya, yaitu quadcopter
pertama, ketiga, keempat, dan keenam, akan berperan sebagai
garis. Pada pemetaan ini, terlihat bahwa jumlah quadcopter yang
menjadi sudut lebih sedikit dibandingkan sudut yang terbentuk.
Hal ini terjadi karena memang 6 quadcopter yang ada bukanlah
jumlah ideal untuk membentuk bangun dengan 4 sudut. Karena
itu, bangun yang dibuat akan menggunakan sudut semu, dengan
tetap mengutamakan bentuk bangun tetap terlihat.
Pergerakan menuju formasi jajar genjang serupa dengan yang
sudah dijelaskan pada formasi segitiga sebelumnya, dimana
tahapan dimulai dengan diberikannya perintah untuk membentuk
formasi kepada quadcopter yang bertindak sebagai sudut melalui
jaringan wireless. Ketika quadcopter yang berperan sebagai sudut
menerimanya, maka quadcopter tersebut akan mundur
menyesuaikan posisinya menjadi sudut. Quadcopter akan bergerak
mundur tegak lurus terhadap garis pusat. Penentuan posisi
mundur sama dengan yang dilakukan saat pembentukan formasi
segitiga, yaitu dengan menggunakan algoritma circular movement
yang jari-jarinya ditambahkan.
161

posisi x baru = pusat lingkaran x + (jari-jari + jarak


mundur*(cos(sudut quadcopter berhenti))
posisi y baru= pusat lingkaran y + (jari-jari + jarak
mundur*(cos(sudut quadcopter berhenti))
set posisi quadcopter ke posisi x baru, posisi y baru, z
target objek

Setelah semua quadcopter selesai bergerak, maka terbentuklah


formasi jajar genjang.
3.4.4 Uji Coba dan Evaluasi Hasil Simulasi
Dalam melakukan uji coba, akan dilakukan beberapa skenario. Uji coba
ini dilakukan untuk menguji apakah algoritma yang digunakan dapat
bekerja dengan baik dengan kondisi quadcopter yang ada. Skenarioskenario tersebut adalah:
1. Quadcopter berjumlah enam unit melakukan pembentukan
formasi segitiga.
Pada skenario ini, enam buah quadcopter akan membentuk
formasi segitiga seperti yang terlihat pada gambar 3.37. Pertama
sekali, keenam quadcopter yang ada disusun berjajar dimana tiga
quadcopter bernomor satu, dua, dan tiga di bagian depan, dan tiga
quadcopter bernomor empat, lima, dan enam di bagian belakang.
Quadcopter diurutkan secara acak, karena perbedaan urutan
quadcopter tidak akan banyak mempengaruhi jalannya simulasi.
Yang penting, posisi dari quadcopter yang bernomor lebih besar
tidak boleh berada di depan quadcopter yang nomornya lebih
kecil.

162

163

Gambar 3.37. Tahapan Pembentukan Formasi Segitiga pada Simulasi VREP

Formasi segitiga berhasil dibentuk dalam waktu 2 menit 22 detik


dalam waktu nyata (bukan waktu perangkat lunak simulasi).
Formasi berhasil dibentuk tanpa adanya quadcopter yang keluar
dari jalurnya ataupun menabrak helikopter lain. Rincian waktu
untuk setiap tahapan dalam pembentukan formasi segitiga dapat
dilihat pada Tabel 3-4.
Tabel 3-4. Jangka Waktu Pembentukan Pola Formasi Segitiga

Pola yang dibentuk


Garis lurus
Lingkaran
Segitiga

Jangka waktu pelaksanaan


1 menit 2 detik
2 menit 7 detik
2 menit 22 detik

2. Quadcopter berjumlah enam unit melakukan pembentukan


formasi jajar genjang.
Tujuan utama dari skenario ini adalah membentuk formasi jajar
genjang. Tahapan awal skenario ini sama dengan skenario
pembuatan formasi segitiga yang dijelaskan sebelumnya, yaitu
enam buah quadcopter akan diletakkan acak.

164

165

Gambar 3.38. Formasi Jajar Genjang yang Berhasil Dibentuk pada


Simulasi V-REP

Formasi jajar genjang berhasil dibentuk dalam waktu 2 menit 8


detik dalam waktu nyata. Formasi berhasil dibentuk tanpa adanya
quadcopter yang keluar jalur ataupun menabrak quadcopter lain.
Rincian waktu untuk setiap tahapan dapat dilihat pada Tabel 3-5:
Tabel 3-5. Jangka Waktu Pembentukan Pola Formasi Jajar Genjang

Pola yang dibentuk


Garis lurus
Lingkaran
Segitiga

Jangka waktu pelaksanaan


56 detik
1 menit 56 detik
2 menit 8 detik

3.5 Kesimpulan dan Pengembangan Lebih Lanjut

Penggunaan UAV quadcopter AR.Drone untuk pemulihan jaringan


telekomunikasi telah dianggap memadai. Parameter penilaian ini
diukur dari keberhasilan quadcopter menyambungkan sink dengan
target, dan keterhubungan antara satu agen dengan agen yang lain,
serta terbentuknya jaringan ad-hoc yang memungkinkan pengiriman
paket data dari sink menuju target. Pada penelitian selanjutnya akan
dilakukan pemulihan jaringan komunikasi dengan area yang lebih luas
serta penggunaan agen yang lebih banyak. Selain itu, akan dilakukan
integrasi fungsionalitas AR.Drone sebagai pendeteksi dan pelacakan
objek untuk pencarian korban bencana dengan pemulihan jaringan
166

komunikasi sehingga dapat dilakukan pada saat bersamaan dapat


dilakukan dua hal yang berbeda. Hal ini memungkinkan peningkatan
efektifitas dari AR.Drone.
Deteksi objek topi telah dapat dilakukan dengan baik. Meskipun
demikian jika warna objek sekitar memiliki nilai piksel yang
berdekatan dengan objek topi, maka deteksi dan pelacakan
memberikan hasil yang kurang baik. Hal ini merupakan poin perbaikan
yang harus dilakukan untuk pengembangan berikutnya.
Dalam kasus penerapan UAV untuk eksplorasi ruang. Hasil proses
simulasi yang didapatkan, menyimpulkan bahwa pembentukan
formasi telah berhasil dan algoritma yang diterapkan dapat berjalan
dengan baik. Pada penelitian selanjutnya akan dilakukan implementasi
pembentukan formasi secara langsung menggunakan AR.Drone.
Pada proses implementasi tersebut mungkin akan sedikit berbeda
dengan proses implementasi dengan cara simulasi, karena proses
implementasi secara langsung harus memperhatikan seluruh kondisi
lingkungan dan kondisi dari AR.Drone itu sendiri.

167

168

BAB

4|

4. BAB 4| Penerapan Robot Berkaki


Robot berkaki yang dijelaskan pada bagian ini merupakan robot
berkaki berbentuk humanoid. Dua aplikasi penggunaan robot
humanoid yang akan dijelaskan pada buku ini adalah robot soccer
untuk bermain bola dan robot imitasi gerak manusia. Rancangan robot
humanoid diterangkan pada subbab pertama mencakup perangkat
keras dan perangkat lunak robot, dan bentuk rancangan fisik robot.
Selanjutnya pada subbab kedua, dijelaskan beberapa teori dasar yang
digunakan pada robot humanoid soccer serta algoritma dan strategi
yang dipergunakan dalam pertandingan. Kemudian pada subbab
terakhir, dijelaskan mengenai robot imitasi mencakup proses robot
dalam mengimitasi gerak manusia mulai dari tangkapan gerakan
manusia oleh Microsoft Kinect (Kinect) sampai gerakan ditirukan oleh
robot.
Robot humanoid adalah jenis robot yang memiliki kemampuan untuk
mengimitasi kebiasaan dari gerak-gerik manusia. Dalam membangun
robot humanoid, hal utama yang perlu kita pikirkan adalah
pembangunan tubuh robot (badan robot) dan kecerdasan robot
(otak). Dalam pembangunan tubuh robot, robot humanoid memiliki
beberapa aktuator yang menyerupai manusia antara lain kepala,
muka, tangan, lengan, kaki, dan lutut sebagai alat gerak bagi robot
humanoid.
Dalam pembangunan kecerdasan robot maka ada beberapa hal yang
perlu menjadi perhatian antara lain, bagaimana robot tersebut dapat
berjalan menyetupai manusia, menggerakan seluruh aktuator dan
mengekspresikan emosi yang dimilikinya. Setelah ketiga hal tersebut
terpenuhi, barulah pada akhirnya robot humanoid dapat memiliki
169

kecerdasan untuk pengenalan benda disekitarnya dan melakukan


pekerjaan sesuai dengan perintah yang telah ditanamkan pada
program robot.

4.1 Desain Robot Humanoid

Robot humanoid pada buku ini diaplikasikan untuk pertandingan


sepak bola robot dan pengimitasian gerak manusia. Dalam kasus robot
soccer, desain robot harus dibuat dengan sebaik-baiknya, sehingga
robot mampu bergerak cepat dan melakukan setiap peran yang telah
ditentukan. Peran tersebut antara lain menyerang, bertahan, dan gol
kipper. Dalam kasus robot humanoid imitasi, setiap gerakan tubuh
manusia yang ditangkap menggunakan Kinect dan harus dapat
diimitasi oleh robot dengan baik. Kedekatan bentuk fisik robot dengan
fisik manusia akan mempengaruhi kemiripan gerakan yang ditiru.
Bagian berikut ini menjelaskan rancangan fisik robot humanoid yang
terbagi dalam desain elektrik robot, perangkat keras yang dipasang,
serta perangkat lunak yang ditanamkan.
4.1.1 Perangkat Keras Robot Humanoid
Implementasi sistem gerak manusia pada robot humanoid soccer
membutuhkan berbagai macam perangkat. Perangkat-perangkat yang
digunakan dalam hal ini meliputi perangkat keras dan perangkat lunak.
Dalam subbab ini akan dijelaskan mengenai perangkat-perangkat yang
digunakan dalam mengimplementasikan sistem gerak manusia pada
robot humanoid soccer.
4.1.1.1 Komponen Penyusun Robot Humanoid

Robot humanoid yang dipergunakan dalam pertandingan


menggunakan paket Bioloid Robot Kit. Paket robot humanoid ini
merupakan produksi Robotis dan telah menggunakan aktuator digital
servo motor digital yang memungkinkan pengendalian dengan cepat
dan penggunaan komunikasi data serial. Servo motor Dynamixel juga
dapat memberikan feedback berupa kecepatan, suhu, beban, dan
sebagainya yang dapat dimanfaatkan untuk pengendalian yang efektif.
Bioloid Premium dapat digunakan untuk pengujian algoritma imitasi
gerakan manusia. Dengan memanfaatkan feedback dari servo serta
170

sensor Gyro, dapat dilakukan adaptasi gerakan menurut beban setiap


servo dan gangguan keseimbangan pada robot. Gambar robot,
penjelasan singkat dapat dilihat pada gambar 4.1.

Gambar 4.1. Bioloid Kit beserta Kit

Paket bioloid premium ini terdiri dari:


1. Servo Controller CM-510
Merupakan controller yang digunakan untuk menggerakkan sendisendi robot sehingga membentuk suatu gerakan. Controller ini
berbasis ATMega2561 produksi Robotis, CM-510 memiliki enam
buah port ADC dan dapat mengatur gerakan servo Dynamixel AX12A yang dipasang secara daisy chain. CM-510 dapat
mengendalikan servo Dynamixel AX-12A. Kontroler CM-510
mengirimkan instruksi spesifik kepada masing-masing servo sesuai
ID servo yang telah diatur. Gambar 4.2 menunjukan bentuk
Controller CM-510.

171

Gambar 4.2. Controller CM-510


2. AX-12 Servo Motor

Merupakan motor servo yang berperan sebagai sendi-sendi robot.


Motor ini memiliki 1024 titik koordinat. Seluruh titiktitik
koordinat tersebut mewakili 330 derajat. Keseluruhan terdapat
total 18 motor yang disertakan dalam kit ini.

Gambar 4.3. Dynamixel AX-12

3. Lipo battery
Merupakan sumber energi bagi robot saat bergerak. Baterai ini
memiliki tegangan 11.1v dan arus 1000mA.
4. Gyro sensor GS-12
Merupakan sensor untuk mengetahui perubahan kemiringan
robot, sehingga dapat membantu keseimbangan robot saat
berjalan seperti yang terlihat pada Error! Reference source not
found.. Data sensor accelerometer dibaca oleh CM-510 berupa
tegangan dan diterjemahkan dengan ADC (Analog Digital
Converter). Perubahan kemiringan yang dapat dideteksi yaitu dua

172

sumbu. Nilai perubahan kemiringan ini yang diproses oleh CM-510


untuk menentukan offset servo kaki robot.

17. Gyro GS-12

5. Cable header
Merupakan benda yang digunakan untuk menjepit kabel pada
badan robot sehingga tidak tersangkut saat robot bergerak.
6. Infrared sensor
Merupakan sensor yang dapat digunakan untuk mengetahui ada
tidaknya benda di depan sensor tersebut. Pada bioloid robot
sensor ini dipasang di muka robot.
7. Distance measurement sensor (DMS)
Merupakan sensor yang dapat digunakan untuk mengetahui
seberapa jauh benda yang ada didekatnya. Meskipun demikian
sensor ini memiliki jarak yang bisa diukur.
8. Wireless Communicator Zig110
Modul ini merupakan modul yang digunakan untuk komunikasi
antar device secara wireless, akan tetapi modul ini bersifat
opsional dan untuk paket default pembelian, Zig110 tidak
disertakan. Modul ini juga dapat berkomunikasi dengan IR receiver
dari Bioloid kit. Tampilan fisik zig100 dapat dilihat pada Gambar
4.4.

173

Gambar 4.4. Modul Zig100

9. Infra Red Receiver


Modul ini merupakan modul yang dapat digunakan untuk
komunikasi secara wireless dengan device sejenis (IR transmitter)
10. RC-100 Remote Control
Modul ini merupakan remote kontrol yang berpasangan dengan
modul IR receiver.
4.1.1.2 Komponen Tambahan Penyusun Robot Soccer

Komponen-komponen pada 4.1.1.1 merupakan komponen yang


disertakan saat pembelian Bioloid premium kit. Terdapat beberapa
sensor yang tidak boleh dipergunakan saat pertandingan robot soccer
khususnya IR sensor dan DMS sensor sehingga diperlukan penggantian
komponen-komponen tersebut dengan komponen lain yang
diperbolehkan. Komponen-komponen tambahan tersebut adalah:
1. Accelerometer MMA7260
Accelerometer digunakan sebagai sensor tambahan untuk
mengukur kemiringan robot untuk mendeteksi apakah robot
sedang dalam keadaan jatuh (gambar 4.5). Data sensor
accelerometer dibaca oleh CM-510 berupa tegangan, dan
diterjemahkan dengan ADC.

Gambar 4.5. Accelerometer MMA7260

174

MMA7260 dapat memberikan nilai kemiringan tiga sumbu, namun


yang digunakan pada robot hanya satu sumbu, yaitu untuk
menentukan apakah robot jatuh ke depan atau kebelakang atau
sedang berdiri.
2. OV6620 Camera Module
Kamera dengan resolusi maksimal 352 x 288 dan kedalaman
warna 8 bit (gambar 4.6). Kamera ini memberikan nilai RGB kepada
LPC2106.

Gambar 4.6. Sensor Kamera OV6620

3. Additional Microcontroller Philips LPC2106


Prosesor ARM7TDMI dengan kecepatan CPU 60Mhz, RAM 64KB,
dan ROM 128KB. LPC2106 (gambar 4.7) pada CMUcam3 dapat
menggerakkan hingga empat buah servo serta memiliki dua buah
port UART untuk berkomunikasi dengan perangkat lain.
Microcontroller ini digunakan untuk memproses gambar yang
diterima dari kamera dan menggerakkan servo Turnigy TGY-90S
pada kepala, mendeteksi objek di sekitar robot, menentukan posisi
dan jarak objek-objek (gawang, garis lapangan, bola, atau robot
lain).

Gambar 4.7. Modul CMUcam3 (Kamera dan LPC2106)

175

4.1.1.3 Rancangan Fisik Robot Humanoid

Robot soccer dan robot imitasi gerak memiliki bentuk fisik yang mirip
karena dirancang menggunakan basis komponen yang sama yaitu
Bioloid premium kit. Meskipun demikian terdapat sedikit perbedaan
karena pada robot soccer sebagian komponen penyusunnya diganti
dengan komponen alternatif, dimana hal ini tidak terjadi untuk kasus
robot imitasi gerak. Bentuk fisik robot soccer ditunjukkan oleh Gambar
4.8Gambar 4.8. Bentuk Fisik Robot Humanoid (Tampak belakang, tampak
samping, tampak depan), sementara bentuk fisik robot imitasi masih
mengikuti bentuk awal yang disediakan paket Bioloid, ditunjukkan
oleh Gambar 4.1.

Gambar 4.8. Bentuk Fisik Robot Humanoid (Tampak belakang, tampak


samping, tampak depan)

4.1.2 Perangkat Lunak Robot Humanoid


4.1.2.1 Robot Operating System

ROS (Robot Operating System) merupakan development environment


pada Sistem Operasi Linux yang menyediakan sekumpulan API
(Application Programming Interface) yang bersifat open source dan
dikembangkan oleh Stanford Artificial Intelligence Laboratory,
dilanjutkan oleh Willow Garage dan lebih dari 20 institusi yang
berkolaborasi seperti yang terlihat pada Gambar 4.9.

176

Gambar 4.9. Robot-Robot yang Dikembangkan dengan ROS

ROS telah digunakan pada berbagai robot, beberapa diantaranya


dapat dilihat pada gambar 4.9. ROS memiliki beberapa library yang
dapat mendukung penafsiran gerakan manusia dari Microsoft Kinect
ke model kerangka humanoid, yaitu openni_kinect yang didukung oleh
package pendukung seperti openni_camera, openni_tracker, dan
depth_image_proc.
Pada pengambilan data maupun penentuan gerakan robot dibutuhkan
visualisasi untuk memudahkan proses debugging data yang diterima
maupun perintah pada robot. Sangat menyulitkan jika harus melihat
hasil persepsi data dari sensor berupa angka-angka saja, sehingga
dibutuhkan suatu antarmuka yang menyajikan visualisasi dari data
tersebut. Salah satu program yang dapat digunakan sebagai antar
muka adalah rvis. Program ini merupakan sebuah environment
visualisasi tiga dimensi pada ROS. Pemanfaatkan program ini
membuat data yang diperoleh dari sensor seperti Microsoft Kinect
dapat divisualisasikan dalam bentuk tiga dimensi. Visualisasi ini akan
mempermudah proses debugging dan simulasi robot. Contoh proses
visualisasi dapat dilihat pada gambar 4.10.

177

Gambar 4.10. Hasil Visualisasi dengan Menggunakan rviz

Jika dilihat secara fisik ROS merupakan aplikasi yang berjalan di atas
sistem operasi linux. Meskipun demikian ROS dapat mengolah
beberapa macam aplikasi yang berjalan di atasnya. Dengan demikian
ROS berperan sebagai sistem operasi. Aplikasi yang dijalankan di atas
ROS diwujudkan sebagai node-node yang dapat berkomunikasi satu
sama lain. Node-node tersebut dapat berkomunikasi dengan pesan
yang disebut dengan topic. Pengirim pesan dikatakan sebagai
publisher topik sedangkan penerima pesan (pengakses pesan)
disebut sebagai subscriber topik. Untuk melihat bagaimana nodenode pada ROS berinteraksi, dapat dilakukan visualisasi dengan
rxgraph. Contoh rxgraphh dapat dilihat pada Gambar 4.11. Dalam
Gambar 4.11
terlihat bahwa node /kinect_base_link,
/kinect_base_link1, node /kinect_base_link2, node /kinect_base_link3,
dan node /rgbdslam mempublish topik /tf yang di-subscribe oleh node
/objects_database_node.

178

Gambar 4.11. Contoh Interaksi Node pada ROS (rxgraph)

4.1.2.2 Roboplus
Roboplus merupakan aplikasi yang dibuat oleh Robotis Corporation
(produsen Bioloid) untuk mengembangkan piranti lunak untuk
mengendalikan/mengontrol Bioloid Kit. Aplikasi roboplus ini
sebenarnya tidak hanya ditujukan untuk Bioloid Kit saja, tetapi juga
Ollo Kit. Terdapat tiga subaplikasi yang disediakan oleh roboplus untuk
membuat kontrol pada Bioloid yaitu roboplus task, roboplus manager,
dan roboplus motion. Gambar aplikasi roboplus untuk kategori bioloid
kit dapat dilihat pada gambar 4.12.

179

Gambar 4.12. Roboplus

RoboPlus manager merupakan subaplikasi yang berfungsi untuk


pengaturan pengaturan dasar komponen kit, baik controller, aktuator
maupun sensor. Melalui aplikasi ini kita bisa mengetahui kondisi
aktuator (servo motor) dan melakukan pengecekan-pengecekan dasar
pada aktuator tersebut. Selain itu, kita bisa memberikan batasan
batasan nilai pada aktuator seperti batasan voltase yang diberikan,
batasan suhu maksimal yang diizinkan untuk beroperasi, sampai
batasan koordinat yang boleh digunakan ketika beroperasi. RoboPlus
manager juga dapat digunakan untuk mengecek kondisi sensor yang
dalam hal ini adalah nilai hasil pembacaan sensor. Tampilan RoboPlus
manager dapat dilihat pada gambar 4.13.

Gambar 4.13. RoboPlus Manager


180

Sedangkan RoboPlus Motion digunakan untuk membuat atau


mengatur motion (gerakan) pada Robot Bioloid. Tampilan roboplus
motion dapat dilihat pada gambar 4.14. Antarmuka RoboPlus Motion
dibagi menjadi tiba bagian utama. Bagian paling kiri merupakan list
page, dimana setiap page mengintrepetasikan suatu gerakan. Bagian
tengah atas merupakan langkah-langkah dari page yang ditunjuk saat
itu. Pada bagian ini ada pengaturan delay dan waktu pengeksekusian.
Pada bagian tengah bawah terdapat pengaturan lanjutan dari langkahlangkah, baik speed rate, repeat time, maupun inertial force.
Sedangkan bagian ketiga (kanan) merupakan antarmuka untuk
mengunggah data koordinat servo dari komputer ke robot atau
mengunduh data koordinat servo dari robot ke komputer.

Gambar 4.14. Roboplus Motion

Sementara itu RoboPlus Task Manager digunakan untuk memprogram


logika robot untuk menjalankan tugas. Program yang dapat dibuat
menggunakan RoboPlus Task ini menyerupai program komputer pada
umumnya, atau tepatnya mirip program C. Melalui Roboplus dapat
dibuat sintaks pemanggilan motion (gerakan) robot yang dibuat
menggunakan roboplus motion. Roboplus task ini bisa dikatakan
sebagai aplikasi untuk membuat program yang mengatur jalannya
gerakan-gerakan yang telah dibuat. Tampilan antarmuka aplikasi
Roboplus task dapat dilihat pada gambar 4.15.

181

Gambar 4.15. Roboplus Task manager

4.2 Robot Humanoid untuk Pertandingan Soccer


Pertandingan robot soccer merupakan salah satu cabang yang
diperlombakan pada Kontes Robot Cerdas Indonesia (KRCI). Oleh
sebab itu robot yang dirancang harus disesuaikan dengan peraturan
Perlombaan KRCI, mulai dari bentuk, dimensi robot, perangkat keras,
dan perangkat lunak yang digunakan serta sistem kecerdasan yang
ditanamkan pada robot.
4.2.1 Tata Cara Perlombaan Robot Humanoid Soccer
Tata cara perlombaan robot soccer berbentuk humanoid yang
dijabarkan disini mengikuti peraturan yang didefinisikan pada Kontes
Robot Cerdas Indonesia.
1.

Tugas Robot
Pembuatan robot dilakukan dengan tujuan mengikuti dan
menjuarai Kontes Robot Cerdas Indonesia divisi Robot Soccer
Humanoid League. Tugas robot ini adalah bermain bola dengan
aturan lomba yang digunakan dalam kompetisi.

2.

Lapangan
Lapangan yang digunakan dalam kompetisi robot ini dapat
diilustrasikan pada gambar 4.16.

182

Gambar 4.16. Detail Spesifikasi Lapangan

Keterangan:
A. Panjang Lapangan: 600 cm
B. Lebar lapangan: 400 cm
C. Kedalaman gawang: 50 cm
D. Lebar gawang: 150 cm
E. Panjang goal area: 60 cm
F. Lebar goal area: 300 cm
G. Jarak penalti: 180 cm
H. Diameter lingkaran tengah: 120 cm
I. Lebar border strip (min): 70 cm
J. Jarak pole ke lapangan: 40 cm
Bola yang digunakan: bola tenis berwarna oranye ukuran standar
bola tennis.
3.

183

Peraturan Lomba
Peraturan lomba mengacu pada peraturan RoboCup Soccer
Humanoid League Kid Size. Pada peraturan lomba tersebut setiap
pertandingan dilakukan oleh dua tim, dengan masing-masing tim
tidak lebih dari tiga robot. Robot yang tidak mampu bermain
(tidak mampu berjalan dengan dua kaki, tidak dapat berdiri, atau
malfungsi lainnya) tidak diperbolehkan berpartisipasi dalam
pertandingan dan harus dikeluarkan dari lapangan. Penentuan
mampu atau tidaknya robot bermain tergantung pada keputusan
wasit. Wasit boleh meminta ketua tim untuk mendemonstrasikan
kemampuan robot kapan pun.

Robot yang tidak dapat bangun dari jatuh selama 20 detik akan
dikeluarkan dari lapangan selama 30 detik dan masuk kembali
sesuai peraturan. Pada setiap pertandingan, paling banyak dua
robot boleh digantikan oleh robot cadangan dari tim yang sama.
Robot pengganti boleh masuk ke lapangan setelah robot yang
digantikan dikeluarkan dari lapangan dan mendapat tanda dari
wasit. Pergantian posisi permainan tidak dianggap sebagai
substitusi. Robot dapat dikeluarkan dari lapangan untuk perbaikan
setelah mendapatkan izin dari juri. Robot dapat masuk kembali
setelah lebih dari 30 detik dikeluarkan, dengan posisi menghadap
tengah lapangan di salah satu dari dua ujung garis tengah sesuai
keputusan juri (Gambar 4.17. Reposisi robot ketika pelanggaran).

Gambar 4.17. Reposisi robot ketika pelanggaran

4. Spesifikasi
a. Robot harus berbentuk seperti manusia yang terdiri dari dua
kaki, dua lengan, satu kepala, yang terpasang pada sebuah
tubuh. Robot harus dapat berdiri dan berjalan dengan kakinya.
b. Tinggi robot (H) antara 30 cm hingga 60 cm, dengan luas tiap
kaki maksimal H2/30 , dan lebar saat tangan terentang kurang
dari 1,2H.
c. Sensor eksternal yang digunakan hanya boleh sensor suara
dengan frekuensi dan volume seperti pendengaran manusia
sedangkan kamera hanya boleh dipasang di kepala robot.
d. Pandangan robot harus kurang dari 180 derajat dan gerakan
putar kepala maksimal 270 derajat.
e. Sensor internal seperti sensor tegangan, arus, gaya, gerakan,
percepatan, boleh dipasang di bagian manapun dari robot.
184

f. Robot saling boleh berkomunikasi dan mendapat sinyal mulai


atau berhenti melalui jaringan wireless yang disediakan panitia.
5. Dimensi :
a. Tinggi = 48,5 cm
b. Lebar = 22,5 cm
c. Tebal = 9 cm
6. Struktur material
a. Akrilik
b. Plastik
c. Aluminum
7. Dimensi robot (gambar 4.18. struktur robot bagian depan dan belakang
dan gambar 4.19. struktur robot bagian bawah)
a. Tinggi: 42 cm
b. Lebar: 19 cm
c. Tebal: 14 cm

Gambar 4.18. Struktur Robot Bagian Depan dan Belakang

185

Gambar 4.19. Struktur Robot Bagian Bawah

4.2.2 Strategi dalam Pertandingan


Dalam pertandingan robot humanoid soccer diperlukan strategi yang
handal guna memaksimalkan hasil yang ingin dicapai, yaitu
memaksimalkan gol yang bisa dibuat oleh tim dan meminimalkan
kemungkinan lawan untuk membuat gol ke gawang kita. Sebelumnya
perlu di-review terlebih dahulu bahwa dalam pertandingan robot
humanoid soccer berukuran mini, ada tiga robot yang bermain dari
setiap tim. Salah satu dari tiga robot tersebut harus ada yang menjadi
penjaga gawang.
Salah satu strategi yang dapat digunakan dalam pertandingan robot
humanoid soccer adalah dengan menggunakan konfigurasi penjaga
gawang pemain bertahan pemain penyerang. Setiap robot
mengerjakan tugas sesuai dengan perannya masing-masing. Karena
memiliki perannya masing-masing, setiap robot juga memiliki daerah
eksplorasi dan operasi masing-masing.
Konfigurasi strategi ini dapat dilihat pada Gambar 4.20 Robot
penyerang memiliki wilayah operasi dari belakang bundaran tengah
lapangan sampai depan gawang lawan. Wilayah operasi robot
penyerang ditunjukkan dengan kotak warna merah. Sedangkan
pemain bertahan memiliki wilayah operasi dari depan kotak penalti
sampai belakang bundaran tengah lapangan di sisi lawan. Wilayah
operasi robot bertahan ditunjukkan dengan kotak warna ungu. Kiper

186

memiliki wilayah operasi di daerah penalti saja. Wilayah operasi robot


kiper ditunjukkan dengan kotak warna biru.
Keuntungan dari strategi ini adalah memiliki kestabilan yang kokoh
mulai dari lini depan sampai lini belakang. Hal ini dikarenakan setiap
wilayah lapangan dijaga oleh setiap robot dengan perannya masingmasing. Strategi ini cocok untuk menghadapi tim yang memiliki
kecepatan dalam menyerang. Robot penyerang lawan yang bergerak
cepat dapat ditahan oleh pemain bertahan tim. Selain itu, jika
menggunakan strategi ini, pemain bertahan dan juga kiper harus
memiliki tendangan yang keras guna mempercepat counter kepada
tim lawan.

Gambar 4.20. Pembagian wilayah untuk masing-masing robot pada


saat pertandingan.

Seperti yang disebutkan pada paragraf sebelumnya bahwa setiap


robot dalam strategi ini memiliki peran masing-masing. Oleh sebab itu,
setiap robot memiliki algoritma yang berbeda-beda saat bermain
dalam pertandingan. Robot penyerang memiliki tugas untuk mengejar
bola dan memasukkan bola ke gawang lawan. Algoritma robot
penyerang dapat digambarkan pada Gambar 4.21. Setiap kali iterasi
robot penyerang akan mengecek frame dari sensor kamera. Apabila
pada frame terdeteksi bola, maka robot akan melakukan tracking
pada bola.
Pada saat melakukan tracking digunakan algoritma PID (subbab
4.2.3.7). Setelah melakukan tracking, robot penyerang akan mengecek
187

apakah bola berada pada jarak yang dekat atau jauh. Jika bola masih
jauh maka robot penyerang akan mendekati bola. Jika bola sudah
dekat maka robot akan mengubah orientasi badannya menuju arah
gawang lawan, kemudian mengepaskan ke kaki robot dan
menendangnya. Jika robot tidak menemukan bola pada frame yang
diambil kamera, maka robot akan melakukan scanning guna mencari
bola. Jika sudah melakukan scanning tetapi tidak juga menemukan
bola maka robot akan mengubah orientasinya lalu melakukan
scanning lagi.

Gambar 4.21. Flow Algoritma Robot Penyerang dan Bertahan pada


saat Pertandingan.

Robot bertahan memiliki tugas untuk menghadang lawan, merebut


bola, dan menendang bola ke arah gawang lawan. Flow algoritma
untuk robot bertahan ini sama dengan flow algoritma untuk robot
penyerang. Perbedaannya terletak pada area jelajah di mana robot
bertahan memiliki wilayah operasi di sekitar lingkaran tengah
lapangan sampai depan kotak penalti sendiri sedangkan robot
penyerang memiliki wilayah operasi sampai kotak penalti daerah
lawan. Selain itu, robot bertahan juga harus segera menempatkan
posisinya di tengah wilayah operasinya yaitu di belakang garis
lingkaran tengah pada daerah sendiri setelah melakukan counter.

188

Secara teknis, setelah robot bertahan menendang bola (counter),


robot akan langsung mundur menuju posisinya.
Robot kiper bertugas menjaga gawang tim. Flow algoritma untuk
robot kiper dapat dilihat pada Gambar 4.22. Dapat dilihat bahwa secara
umum flow algoritma robot kiper hampir sama dengan flow algoritma
kedua robot lainnya. Akan tetapi, robot kiper tidak perlu mengejar
bola, melainkan hanya menunggu datangnya bola. Jika bola sudah
dekat maka robot kiper akan mendekatinya dan menendang ke arah
gawang lawan. Pada strategi ini memang tidak disebutkan bahwa
robot akan menangkap bola, tetapi diganti dengan menendang bola.
Hal ini dikarenakan mendekati bola dan menendangnya ke arah
gawang lawan lebih efektif daripada menangkap bola (menghadang
bola dengan tangan dan menjatuhkan diri). Jika memang dibutuhkan,
maka bisa saja ditambahkan gerakan menghadang bola dengan tangan
dan menjatuhkan diri.

Gambar 4.22. Flow Algoritma Robot Kiper pada saat Pertandingan

4.2.3 Implementasi Kecerdasan Robot Soccer


Robot humanoid soccer melakukan peran penyerang, bertahan, dan
penjaga gawang yang dilakukan secara otonom. Sistem kecerdasan
189

yang ditanamkan pada robot mengimplementasikan sejumlah


algoritma untuk memainkan peran-peran tersebut. Hal tersebut
dijelaskan pada bagian berikut.
4.2.3.1 Komunikasi antar Controller

Komunikasi antara LPC2106 dengan CM-510 dilakukan melalui


komunikasi UART (Universal Asynchronous Receiver / Transmitter),
dengan Baud Rate 57600, dengan 8 data bit, tanpa parity bit, dan 1
stop bit (57600/8-N-1). Setiap angka dikirimkan dengan checksum
sesuai dengan yang dapat diterima CM-510. LPC2106 mengirim
perintah kepada CM-510 menggantikan RC-100 yang tersedia dari
Bioloid Premium Kit. Perintah yang dikirim berupa angka yang
mewakili gerakan tertentu:
1: Berjalan maju
2: Berjalan mundur
3: Berputar ke kiri
4: berputar ke kanan, dan seterusnya.
Perintah untuk gerakan-gerakan tersebut berupa angka 2k dengan
tujuan perintah dapat digabungkan, misalnya untuk berjalan maju
sekaligus berputar ke kiri dapat menggunakan perintah 5, yang
didapatkan dari 1+ 4.
4.2.3.2 Algoritma Deteksi Objek

Berdasarkan aturan pertandingan robot soccer, setiap objek yang


berada dalam lapangan pertandingan memiliki warna tertentu. Objekobjek tersebut mencakup bola, robot soccer, garis lapangan, dan
lapangan itu sendiri. Algoritma color filtering merupakan algoritma
dasar yang dibutuhkan robot humanoid untuk mengetahui objekobjek di lingkungannya. Dalam suatu perlombaan robot humanoid
soccer benda-benda yang ada di lapangan dapat diidentifikasi melalui
warnanya. Sesuai dengan ketentuan lomba bahwa warna lapangan
adalah hijau, warna bola adalah oranye, warna gawang adalah biru
dan kuning, serta warna garis pada lapangan adalah putih. Oleh sebab
itu, algoritma color filtering sangat cocok untuk identifikasi benda
pada saat pertandingan.

190

Alur algoritma color filtering cukup sederhana, karena dapat dilakukan


dengan melakukan thresholding saja. Thresholding
merupakan
metode yang digunakan untuk menyaring suatu nilai tertentu.
Threshoding dapat dilakukan dengan menentukan satu nilai batas
tertentu yaitu , dimana nilai yang diperhatikan adalah nilai yang lebih
besar dari saja. Hal ini juga dapat dilakukan dengan cara sebaliknya,
yaitu nilai yang akan diperhitungkan adalah nilai yang lebih kecil dari
saja. Selain menggunakan dengan nilai batas (threshold), metode ini
dapat dilakukan dengan menggunakan dua batas, yaitu minimal dan
maksimal. Dengan demikian, nilai yang akan diperhitungkan nantinya
adalah nilai yang berada pada rentang batas minimal dan maksimal
yang diizinkan.

Gambar 4.23. Proses Kalibrasi Penentuan Rentang RGB

Aplikasi algoritma color filtering pada robot humanoid pemain bola


diawali dengan kalibrasi terlebih dahulu. Kalibrasi ini digunakan untuk
mengetahui batas minimal dan batas maksimal nilai komponen warna
merah (red), hijau (green), dan biru (blue) untuk masing-masing
warna. Dengan kata lain, kalibrasi ini bertujuan untuk mencari batas
minimal dan maksimal masing-masing komponen warna. Kalibrasi ini
juga akan dilakukan untuk setiap warna yang ingin diidentifikasi
karena setiap warna memiliki nilai rentang RGB yang berbeda-beda.
Contoh kalibrasi untuk menentukan rentang RGB warna oranye (bola)
dapat dilihat pada Gambar 4.23.
191

Setelah dilakukan kalibrasi, robot memiliki rentang nilai RGB untuk


masing-masing warna. Selanjutnya, rentang nilai itu dipergunakan
untuk mencari dan menjejaki objek yang diinginkan. Ambil salah satu
contoh objek yang paling utama dalam pertandingan robot humanoid
soccer yaitu bola. Selama pertandingan, bola selalu menjadi objek
yang paling pertama untuk dicari. Proses pencarian dan
pengidentifikasian bola menggunakan algoritma color filtering
berdasarkan nilai batas yang telah diperoleh pada kalibrasi
sebelumnya. Alur algoritma color filtering dalam mengidentifikasi bola
dapat dilihat pada pseudo code Gambar 4.24.
color_filtering {
//Variable
min_x, max_x, min_y, max_y, num_pixel
min_R, max_R, min_G, max_G, min_B, max_B
input_frame, output_frame
pixel_in // 3 channel
pixel_out // 1 channel
input_frame <- take_frame
min_x <- input_frame.width
max_x <- 0
min_y <- input_frame.height;
max_y <- 0
//Process each pixel
for (i <-0 to input_frame.height) {
for ( j <- 0 to input_frame.width) {
pixel_in <- input_frame.getPixel(i,j)
if (pixel_in.R >= min_R && pixel_in.R <= max_R && pixel_in.G >= min_G
&& pixel_in.G <= max_G && pixel_in.B >= min_B && pixel_in.B <=
max_B) {
pixel_out <- output_frame.getPixel(i,j)
pixel_out.value <- 1
num_pixel <- num_pixel + 1
if(i < min_x ) min_x <- i
if(j < min_y ) min_j <- j
if(i > max_x ) max_x <- i
if(j > max_y ) max_j <- j
}
}
}
}

Gambar 4.24. Algoritma color filtering

192

Dari Gambar 4.24 dapat dilihat bahwa melalui algoritma color filtering
tidak hanya diperoleh piksel-piksel pada frame gambar yang memiliki
nilai dalam rentang yang diinginkan, tetapi juga diperoleh data jumlah
piksel, letak minimum, dan letak maksimum piksel dalam koordinat
sumbu dan sumbu . Selanjutnya, data jumlah piksel nantinya dapat
digunakan untuk menentukan apakah objek yang diidentifikasi benarbenar objek yang dicari atau hanya noise. Selain itu, data koordinat
minimal dan maksimal piksel dapat digunakan untuk mengetahui titik
pusat massa objek yang diinginkan.
4.2.3.3 Algoritma Mencari Bola

Mencari bola dilakukan dengan menangkap gambar dari kamera,


mencari warna bola yang telah diatur sebelumnya, dan menggerakkan
servo ke arah lain. Tahapan-tahapan tersebut dilakukan berulangulang hingga menemukan bola. Algoritma mencari bola pada LPC2106
dijelaskan melalui Gambar 4.25.
1 bool mencari(){
2
for(int i=0;i<3;++i){
//verifikasi bahwa robot kehilangan bola
3
cc3_pixbuf_load();
4
cc3_track_color(&t_pkt[0]);
5
if(t_pkt[0].int_density >= 5) return true; //menemukan bola
6
}
7
//awal pencarian
8
servo.x = cari.x0;
9
servo.y = cari.y0;
10 cc3_gpio_set_servo_position (0, servo.x);
11 cc3_gpio_set_servo_position (1, servo.y);
12 for(servo.y = cari.y0; servo.y <= cari.y1; servo.y += cari.gy){
13
cc3_gpio_set_servo_position (1, servo.y);
14
15
for(; servo.x >= cari.x0 && servo.x <= cari.x1; servo.x += cari.gx){
16
cc3_gpio_set_servo_position (0, servo.x);
17
cc3_pixbuf_load();
18
cc3_track_color(&t_pkt[0]);
19
if(t_pkt[0].int_density >= 5) return true; //ketemu :D
20
cc3_pixbuf_load();
21
cc3_track_color(&t_pkt[0]);
22
if(t_pkt[0].int_density >= 5) return true; //ketemu :D
23
}
24
if(servo.x < cari.x0) servo.x = cari.x0;
25
if(servo.x > cari.x1) servo.x = cari.x1;
26
cari.gx *= -1;

193

27 }
28 return false;
29 }

Gambar 4.25. Algoritma pencarian bola

4.2.3.4 Algoritma Mendekati Bola

LPC2106 memerintahkan CM-510 untuk berjalan sesuai dengan posisi


bola terhadap robot.
1. Jika bola di depan robot dan di luar jangkauan tendangan maka
robot berjalan maju seperti yang terlihat pada Gambar 4.26.

Gambar 4.26. Robot Berjalan Maju

2. Jika bola di depan robot dan dalam jangkauan tendangan maka


atur tendangan bola seperti yang terlihat pada Gambar 4.27.

Gambar 4.27. Robot Menendang

194

3. Jika bola di sebelah depan kanan robot maka robot akan berjalan
ke samping kanan sambil maju seperti yang ditunjukan gambar
4.28.

Gambar 4.28. Robot Berjalan Samping Kanan

4. Jika bola di sebelah depan kiri robot maka robot akan berjalan ke
samping kiri sambil maju seperti yang terlihat pada Gambar 4.29.

Gambar 4.29. Robot Berjalan Maju Samping Kiri

5. Jika bola di sebelah kanan robot maka robot akan berjalan ke


samping kanan seperti yang terlihat pada Gambar 4.30.

195

Gambar 4.30. Robot Berjalan Samping Kanan

6. Jika bola di sebelah kiri robot maka robot akan berjalan ke samping
kiri seperti yang terlihat pada Gambar 4.31.

Gambar 4.31. Robot Bergerak Samping Kiri


4.2.3.5 Algoritma Mengatur Keseimbangan

Gerakan robot diatur oleh LPC2106, namun CM-510 mengatur


keseimbangan robot dengan sensor accelerometer dan gyro. Jika nilai
sensor accelerometer menandakan bahwa robot terjatuh, CM-510
mengatur gerakan bangun terlebih dahulu. Setiap gerakan berjalan
akan menghasilkan perubahan arah robot yang mengubah nilai dari
sensor gyro, nilai ini digunakan untuk mengatur kembali offset pada
servo kaki robot agar robot dapat berjalan lebih stabil.
4.2.3.6 Algoritma Mengatur Tendangan Bola

Saat bola berada dalam jangkauan tendangan robot, robot akan


mencari arah gawang lawan, lalu memutari bola hingga menghadap ke
gawang lawan. Setelah itu, robot bergeser sedikit ke kanan atau ke kiri
196

untuk memposisikan bola pada kaki agar tendangan lebih tepat


sasaran dan bola dapat bergerak lebih jauh. Setelah posisi sudah
tepat, bola ditendang menuju gawang lawan.
4.2.3.7 Sistem Kontrol PID

Kontrol Proportional Integral Differential (PID) adalah salah satu


metode untuk meminimalkan error antara state yang diinginkan
dengan real state. Aplikasi paling sederhana yang menggunakan PID
adalah pengendalian kecepatan roda pada robot beroda. Penggunaan
PID dilatarbelakangi permasalahan bahwa nilai kecepatan roda yang
diinginkan memiliki perbedaan dengan kecepatan aktual yang dicapai.
Oleh sebab itu, dibutuhkan suatu metode kontrol untuk
meminimalisasi error di antara keduanya.
Pada dasarnya programmer yang membuat program pada robot
memiliki intuisi untuk meminimalisasi error dengan melakukan
pemberian feedback sesuai besar error, metode ini dikenal sebagai
metode proportional. Meskipun demikian, pendekatan ini
menimbulkan error yang steady-state, dimana kecepatan roda yang
dicapai sudah konvergen. Akan tetapi, memiliki selisih konstan dengan
nilai kecepatan yang diinginkan. Oleh karena itu, diperlukan metode
kontrol integral yang menggunaan error pada state sebelumnya
sebagai tambahan untuk perhitungan feedback. Penambahan metode
kontrol integral ini berguna untuk menghilangkan steady-state error
yang dihasilkan oleh metode kontrol proporsional. Dengan demikian,
kombinasi kontrol proportional-integral (PI) ini sudah mampu
konvergen menuju kecepatan yang diinginkan. Walau demikian ada
permasalahan kecepatan reaksi untuk menuju konvergen. Dengan
kata lain, kombinasi kontrol PI masih lambat untuk mencapai
konvergensi. Oleh sebab itu, ditambahkan kontrol differential (D)
untuk mengatasi lambatnya konvergensi maka ketiga aspek kontrol ini
sistem dapat konvergen menuju state yang diinginkan dengan waktu
yang cepat. Perbedaan tingkah laku masing-masing dan kombinasi
kontrol dapat dilihat pada Gambar 4.32. Grafik perilaku kontrol PID.

197

(a)

(b)

(c)

(d)

Gambar 4.32. Grafik perilaku kontrol PID (Braunl 2006)

Pada Gambar 4.32. (a) dapat dilihat bahwa untuk berbagai kombinasi
nilai konstanta propostional (KP), steady state error tetap muncul
meskipun kecepatan aktual roda sudah konvergen. Pada gambar
tersebut juga dapat dilihat bahwa untuk nilai KP yang sangat besar
akan menimbulkan osilasi nilai kecepatan roda motor. Pada Gambar
4.32. (b), dapat dilihat bahwa kombinasi kontrol PI dapat
menghilangkan steady state error, walau masih terjadi osilasi yang
cukup besar sehingga sulit untuk konvergen. Pada Gambar 4.32. (c),
dapat dilihat bahwa kombinasi kontrol PD mampu untuk mencapai
konvergensi dengan cepat, meskipun sampai akhir state tetap ada
steady state error. Dengan menggabungkan ketika aspek tersebut
diperoleh hasil kontrol yang cepat dan tidak mengandung steady state
error seperti pada Gambar 4.32 (d).

198

Alur kontrol PID secara lengkap dapat dilihat pada Gambar 4.33.
1 static int r_old=0, e_old=0, e_old2=0;
2 ...
3 e_func = v_des - v_act;
4 r_mot = r_old + Kp*(e_func-e_old) + Ki*(e_func+e_old)/2
5
+ Kd*(e_func - 2* e_old + e_old2);
6 r_mot = min(r_mot, +100); /* limit output */
7 r_mot = max(r_mot, -100); /* limit output */
8 r_old = r_mot;
9 e_old2 = e_old;
10 e_old = e_func;

Gambar 4.33. Alur kontrol PID

Berikut adalah langkah-langkah dalam menentukan nilai KP, KI, dan


KD:
1. Tentukan nilai KP sembarang, nilai KI = 0 , dan nilai KD = 0.
Selanjutnya, naikkan nilai KP, sampai terjadi osilasi.
2. Jika terjadi osilasi nilai KP dibagi dengan 2. Langkah ini
berulang terus menerus sampai tidak terjadi osilasi lagi.
3. Naikkan nilai KD sampai respon yang diberikan sesuai.
4. Naikkan nilai KI secara perlahan-lahan sampai terjadi osilasi
lagi, lalu nilai KI dibagi dengan 2 atau 3.

Gambar 4.34. Deskripsi joint dan servo pada robot humanoid

199

Aplikasi kontrol PID pada robot humanoid soccer adalah untuk


keperluan tracking objek. Tracking adalah proses untuk selalu
menempatkan objek pada tengah gambar yang ditangkap oleh
kamera, dengan demikian robot dapat menentukan langkah
selanjutnya berdasarkan letak objek saat ini. Untuk keperluan
tracking, leher robot humanoid soccer dilengkapi dengan dua buah
servo yang berperan sebagai joint dengan dua derajat kebebasan.
Deskripsi joint dan servo pada robot humanoid soccer dapat dilihat
pada Gambar 4.34.
Aplikasi tracking objek menggunakan PID memanfaatkan kamera
sebagai sensor untuk mengetahui kondisi state yang dicapai.
Perbedaan aplikasi untuk tracking objek dengan speed control adalah
pada aplikasi ini ada dua unit kontrol yang dijalankan yaitu kontrol
terhadap posisi servo dan kontrol terhadap posisi servo . Sebagai
parameter untuk menentukan apakah posisi servo sudah benar maka
akan digunakan lokasi pixel dari titik tengah (center) objek yang ditracking. Lokasi titik tengah objek memiliki koordinat
dan
terhadap lebar frame gambar dan tinggi frame gambar. Nilai koordinat
inilah yang nantinya akan dijadikan acuan untuk menghitung error
guna memberikan feedback pada servo.

4.3 Robot Humanoid untuk Imitasi Gerak Manusia


Robot imitasi gerak bertujuan untuk menirukan gerakan manusia.
Sama halnya dengan tubuh manusia, pada robot tersebut terdapat
banyak sendi yang berfungsi sebagai pusat dari pergerakan tubuhnya.
Beberapa gerakan dasar seperti gerakan tangan dan kaki dapat
dikombinasikan menjadi gerakan berjalan, seperti berlari, berhenti,
dan berputar ke kiri atau ke kanan. Pada saat ini, mayoritas dari
gerakan tersebut adalah hasil input secara manual ke robot melalui
piranti lunak yang sudah tersedia dari paket peralatan (kit) robot
tersebut. Namun demikian, kekurangan dari cara ini adalah
membutuhkan waktu yang lama untuk menentukan gerakan yang
diinginkan. Hal ini disebabkan karena banyaknya motor yang harus
dikendalikan sehingga terlalu banyak kombinasi yang harus dicoba
200

satu persatu. Banyaknya kombinasi tersebut memicu kebutuhan untuk


mencari cara pengaturan gerakan motor yang lebih efektif.
Masalah yang sering dihadapi dalam mengembangkan robot
humanoid adalah hilangnya keseimbangan robot. Berbeda dengan
manusia yang bisa menyesuaikan titik berat pada gerakan-gerakan
yang sulit, robot biasanya tidak mampu beradaptasi. Hal ini akan
ditanggulangi dengan menerapkan dan mengembangkan algoritma
yang tepat sehingga robot dapat menyeimbangkan diri untuk
melakukan berbagai gerakan yang sederhana maupun rumit.
Dalam pengimplementasian sistem peniru gerakan ini, berbagai piranti
baik piranti keras maupun piranti lunak digunakan. Pada subbabsubbab berikutnya, akan dijelaskan mengenai piranti-piranti tersebut.
4.3.1 Microsoft Kinect
Microsoft Kinect merupakan sensor yang digunakan untuk menangkap
motion gerakan tubuh menggunakan teknologi alternatif untuk
memudahkan proses penangkapan berbagai kombinasi gerakan yang
dilakukan. Teknologi tersebut adalah Kinect dari Microsoft. Kinect
adalah kit yang diciptakan oleh Microsoft sebagai alat tambahan untuk
game console XBOX 360. Kinect sendiri dapat dikonfigurasikan
sedemikian rupa sehingga memungkinkan robot humanoid melakukan
imitasi gerakan. Hal ini, dapat dilakukan lebih bervariasi dan lebih
sempurna menyerupai gerakan manusia. Selain itu, Kinect juga dapat
mengekstraksi gerakan pada tubuh manusia yang dikirimkan dalam
bentuk numerik di setiap posisi sendi yang ada. Data numerik tersebut
diproses menjadi masukan sistem kecerdasan yang menggerakan
motor pada robot sehingga proses penciptaan gerakan akan lebih
mudah.
Kinect adalah sebuah perangkat tambahan untuk game console
Microsoft Xbox 360. Kinect terdiri dari kamera RGB, depth sensor,
serta multi-array microphone. Ketiga sensor tersebut memungkinkan
Microsoft Kinect menjadi controller untuk bermain Microsoft Xbox 360

201

dengan cara menerjemahkan gerakan manusia sesuai dengan game


yang dimainkan.
Microsoft Kinect (Gambar 4.35) memiliki interface USB (Universal
Serial Bus) dan harganya relatif murah. Hal ini membuat berbagai
komunitas
mulai
memanfaatkan
Microsoft
Kinect
dan
mengembangkan piranti lunak dapat menggunakan Microsoft Kinect
di beberapa sistem operasi komputer (Windows, Linux, Mac).

Gambar 4.35. Microsoft Kinect XBOX 360

Microsoft sendiri sudah mendukung Microsoft Kinect untuk penelitian


robotika dengan menyediakan Microsoft Kinect for Windows
Standard Development Kit (SDK). Kinect
for Windows dapat
dikendalikan menggunakan piranti lunak Windows dan perangkatperangkat Windows-embedded. Microsoft Kinect dapat menjadi solusi
yang efektif dalam proses pengambilan gerakan manusia (motion
capture) karena tersedia banyak di pasaran dan penggunaannya yang
sederhana tanpa membutuhkan pemasangan perangkat tambahan
pada tubuh manusia.
4.3.2 Arsitektur Robot Imitasi
Sistem imitasi gerak manusia pada robot humanoid ini
diimplementasikan pada PC di atas sistem operasi Linux dan ROS.
Sistem operasi Linux yang digunakan adalah distro ubuntu 11.10.
Sedangkan ROS yang digunakan adalah ROS electric. Sistem robot
imitasi dibuat di atas ROS untuk memudahkan proses multitasking.
Disamping itu, pada ROS juga sudah tersedia packages pendukung
yang dibuat oleh komunitas. Peran packages ini mirip library yang
digunakan untuk memudahkan pembuatan aplikasi pada umumnya.
Pembuatan sistem imitasi gerak manusia berbentuk humanoid,
direalisasikan dalam tiga layer. Layer pertama adalah akuisisi data
202

yang dilakukan sensor Kinect yang digunakan untuk menangkap


gerakan manusia. Layer kedua adalah pemrosesan pada komputer
(PC), PC digunakan untuk memproses data gerak manusia sehingga
nantinya dapat ditirukan oleh robot humanoid. Layer ketiga adalah
rangkaian aksi robot humanoid dari translasi gerakan data yang dikirim
oleh PC. Skema rancangan sistem ini dapat dilihat pada Gambar 4.36.

Gambar 4.36. Rancangan Sistem Robot Imitasi Gerakan Manusia


4.3.2.1 Proses pada Sensor

Proses utama yang diajukan, dimulai dari akusisi data gerak manusia
oleh sensor Kinect. Selanjutnya data tersebut dikirimkan oleh Kinect
ke komputer. Selanjutnya data dari Kinect tadi diolah oleh aplikasi
yang berjalan di atas ROS. Pertama kali data tersebut diakusisi oleh
aplikasi. Data yang diakusisi ini dibagi menjadi dua, yaitu data image
(citra objek) dan data depth yaitu data yang merepresentasikan jarak
relatif objek terhadap sensor Kinect .
4.3.2.2 Proses pada PC

Data image dan data depth dipergunakan untuk memproyeksikan


bentuk rangka tubuh manusia yang disebut dengan skeleton. Setelah
diperoleh data skeleton tersebut selanjutnya dilakukan perhitungan
sudut tiap-tiap sendi. Selanjutnya, berdasarkan data-data sudut tiap
sendi akan dipilih motion robot mana yang sesuai dengan gerakan
manusia. Data motion tersebut berikutnya akan dikirimkan ke robot.
4.3.2.3 Proses pada Robot

Data yang dikirim dari PC adalah ID motion/gerakan robot. Pada tahap


ini microcontroller yang terpasang pada robot akan melakukan
203

pencarian aksi yang teregistrasi pada robot. Jika menerima ID


tersebut, maka motion/gerakan robot ini akan dieksekusi. Dengan
demikian, robot akan menirukan gerakan manusia. Selanjutnya, untuk
menciptakan keseimbangan dalam bergerak, diperlukan kontrol
stabilitas robot yang diimplementasikan pada kontrol robot.
4.3.3 Proses Motion Capture hingga Pemetaan Gerakan
Pada subbab sebelumnya telah diterangkan mengenai arsitektur
sistem robot imitasi dan penjelasan umum mengenai setiap proses
yang terjadi pada sensor, PC, dan robot. Bagian ini akan dijelaskan
lebih jauh mengenai sebagain proses utama dalam implementasi
robot imitasi.
4.3.3.1 Skeleton Extraction

Skeleton Extraction merupakan proses pengambilan representasi


kerangka (skeleton) dari suatu objek. Proses ini dapat menghasilkan
kerangka yang memiliki fitur utama suatu objek. Salah satu contohnya
adalah dari objek manusia bisa didapatkan bentuk rangka tubuh dan
persendian-persendiannya seperti yang terlihat pada Gambar 4.37.

Gambar 4.37. Gambar Menyerupai Manusia dan Kerangkanya

Hasil skeleton extraction adalah bentuk penting dari tubuh manusia


yang dapat dimanfaatkan untuk berbagai kepentingan seperti

204

pengontrolan robot humanoid. Ilustrasinya terdapat pada Gambar


4.37.
4.3.3.2 Ekstraksi Fitur Data Sendi

Setelah dilakukan skeleton extraction selanjutnya dilakukan


perhitungan data sendi yang akan dipergunakan sebagai fitur untuk
lookup motion. Pada implementasi ini terdapat 56 fitur yang
digunakan. Fitur- fitur tersebut diambil dari data 14 sendi yang diambil
dari sensor Kinect. Dengan demikian, dari setiap sendi ada empat data
yang diambil. Tiga fitur pertama dari setiap sendi adalah sudut dari
sendi yang bersangkutan terhadap bidang x, bidang y, dan bidang z,
sedangkan satu data terakhir adalah jarak sudut yang bersangkutan
terhadap torso. Proses ekstraksi fitur ini dapat dilihat pada Gambar
4.38.

Gambar 4.38. Ektraksi Fitur Data Sendi

Setelah fitur berhasil diekstrak proses lookup motion menggunakan


nilai fitur, dilakukan menggunakan algoritma jaringan syaraf tiruan
(JST). Algoritma tersebut digunakan untuk meminimalkan kesalahan
translasi gerak sehingga robot dapat mentranslasikan gerak manusia
yang ditangkap Kinect setepat mungkin. Algoritma JST
mempergunakan Fuzzy Neuro Generalized Learning Vector
Quantization (FNGLVQ) yang diperkenal-kan oleh Setiawan pada 2011
sebagai pengembangan lebih lanjut dari GLVQ.

205

Gambar 4.39. Proses translasi motion dari nilai fitur

Dalam kaitannya dengan proses translasi gerakan. FNGLVQ


menghitung nilai kuantisasi vektor sehingga nilai fitur persendian
sebagai input vektor
dapat dipetakan ke gerakan . Hubungan
antara
dan
dimodelkan menggunakan kuantisasi vektor
sedemikian hingga kemiripan antara
( , ) menentukan
nilai prediksi terhadap translasi gerakan robot yang bersesuaian. Lebih
lanjut mengenai teori FNGLVQ dijelaskan lebih mendalam pada
subbab berikut.
4.3.3.3 Dasar Teori Algoritma FNGLVQ

Algoritma klasifikasi Fuzzy-Neuro Generalized Learning Vector


Quantization (FNGLVQ) merupakan salah satu jenis algoritma artificial
neural network atau jaringan saraf tiruan. Jaringan saraf tiruan sendiri
merupakan salah satu algoritma machine learning atau pembelajaran
mesin. Algoritma pembelajaran mesin ditujukan untuk melakukan
pembelajaran terhadap mesin sehingga mesin dapat menyimpan
informasi-informasi yang penting dari data-data yang dipelajari.
Informasiinformasi tersebut nantinya akan dijadikan sebagai alat
untuk memprediksi oleh mesin jika mesin diberikan data baru.
Jaringan saraf tiruan adalah model komputasi yang mencoba
menirukan cara kerja dari fungsi jaringan saraf makhluk hidup.
Neuron-neuron biologis memancarkan sinyal elektrokimia pada jalur
saraf. Setiap neuron menerima sinyal dari neuron lain melalui
sambungan yang disebut sinapsis. Jika sinyal input terakumulasi dan
206

telah melewati threshold atau batas tertentu maka sinyal tersebut


akan menyebabkan neuron teraktifasi dan memancarkan sinyal ke
neuron berikutnya.
Jaringan saraf tiruan merupakan sistem pemrosesan informasi yang
memiliki karakteristik serupa dengan jaringan neural biologis. Secara
umum model jaringan saraf tiruan memiliki dua unit utama yaitu unit
masukan dan unit keluaran. Setiap neuron pada lapisan masukan pada
jaringan akan menerima satu input. Setiap input tersebut akan
dikalikan dengan weight (bobot) yang bersesuaian dan akan
diakumulasikan. Jumlah dari keseluruhan input berbobot tersebut
akan dijadikan input untuk fungsi aktivasi ( ). Fungsi tersebut akan
menghasilkan nilai keluaran yang akan digunakan untuk melakukan
prediksi. Pada gambar 2 input neuron sebanyak
dan secara
matematis dapat dituliskan untuk setiap input
akan dikalikan
dengan bobot
sehingga jumlah totalnya adalah =
, atau
dalam bentuk vektor, vektor X W dengan X = [x1, x2, , xn] dan W =
[w1, w2, , wn].

Gambar 4.40. Model komputasi jaringan saraf tiruan (T. Kohonen,


1999)

Pada jaringan saraf tiruan sebuah node mewakili sebuah neuron dan
sebuah koneksi mewakili sebuah hubungan antar neuron. Setiap
koneksi diasosiasikan dengan sebuah nilai bobot (vektor pewakil).
Pada setiap koneksi pulalah sinyal yang diberikan oleh neuron
mengalir dan dikalikan dengan bobot.

207

Algoritma jaringan saraf tiruan telah berkembang pesat dengan


berbagai variasi model dan formula di dalamnya. Saat ini sudah
dikenal jaringan saraf tiruan yang memiliki lapisan (layer) tambahan
yaitu lapis tersembunyi atau hidden layer, antara lain adalah back
propagation dan learning vector quantization (LVQ). Algortima
klasifikasi Fuzzy-Neuro Generalized Learning Vector Quantization
merupakan salah satu diantara algoritma jaringan saraf tiruan yang
memiliki hidden layer.
Algortima klasifikasi Fuzzy-Neuro Generalized Learning Vector
Quantization yang dikembangkan oleh (Setiawan, 2011) merupakan
metode yang berangkat dari konsep fuzzifikasi pada algoritma FuzzyNeuro Learning Vector Quantization (FLVQ) yang dipadukan dengan
konsep Generalized-LVQ (Sato et al., 1996). Pada penelitian
sebelumnya, data uji yang digunakan merupakan data rumah sakit
MIT-BIH yang memiliki sebaran dari tiap kategori kelas aritmia
tumpang-tindih satu sama lain, dan batas antar kategori kelas yan
tidak jelas hal ini dapat mempengaruhi kinerja kemampuan
pengenalan data aritmia (Setiawan et al., 2011). Arsitektur algoritma
FNGLVQ dapat dilihat pada Gambar 4.41.

Gambar 4.41. Arsitektur FNGLVQ (Setiawan et al., 2011)

Konsep dasar yang memotivasi pengembangan algoritma ini adalah


masih banyak data aritmia yang tumpang-tindih (overlapping),
sehingga sukar untuk melakukan pengenalan dan pengklasifikasian

208

data aritmia. Dengan menggunakan vektor pewakil fuzzy ketidakpastian suatu kelas dapat diturunkan.
Psedudo code algoritma FNGLVQ dapat dilihat pada Gambar 4.42.
Algiritma FNGLVQ
Require: X in round-robin mode
Inisialisasi bobot vektor W
Initialize learning rate 0
Initialize maximum iteration tmax
t0
while t 0 or t < tmax do
for xi X do
1 similaritasTerdekat1(x,W) di mana Cx =Cwi
2 similaritasTerdekat2 (x,W) di mana dj =max j /\ j i (dj)/\( Cx =Cwi )
if 1 > 0 OR 2 > 0 then
mce =

1 = 2.

(1 )
(2 )
{adjust prototype 1}
for w1,i w1 do
if w1,i,min < xi w1,i,mean then
2 = 2.

( + 1)

,,

( ) .

,,

.(

( + 1)

end if
end for
,

( )+ .

,,

( + 1)

( + 1)

( + 1)

,,

,,

( )+ .

.(

.(

( )

else if w2,i,mean < xi w2,i,max then

( + 1)

end if
end for
,

( ) .
,

.(

( + 1)

( + 1)

( )

{adjust prototype 2}
for w2,i w2 do
if w2,i,min < xi w2,i,mean then

209

else if w1,i,mean < xi w1,i,max then

,,

( )

( )

( )

)
)

( )
,

( )

( )

if mce < 0 then


{Increase Fuzziness}
,

,
else

{Decrease Fuzziness}

,
,

. 1+( . )

. 1+( . )

. 1( . )
,

. 1( . )

end if
else
{Increase Fuzziness for all vector ref.}
for wj W do
,

,
. 1+( . )
,
,
,

end for
end if
end for
end while
( + 1) =

. 1+( . )

Gambar 4.42. Pseudocode Algoritma FNGLVQ

4.3.3.4 Implementasi Motion Stability Control pada Robot

Motion Stability Control merupakan sistem kontrol yang digunakan


untuk menjaga agar robot tetap stabil dalam bergerak. Pada sistem
tersebut digunakan sensor gyroscope dan accelerometer. Dalam
implementasinya, diwujudkan dalam sebuah program yang ditanam
pada controller robot dengan logika seperti pada Gambar 4.43. Intinya
setiap satu (callback) controller akan mengecek kemiringan robot, lalu
memberikan koreksi pada sendisendi tertentu sehingga tidak jatuh.
Jika controller mendapatkan kondisi robot jatuh, maka secara
otomatis robot akan bangun sendiri.

210

Gambar 4.43. Logika Motion Stability Control

4.3.4 Detail Implementasi Robot Imitasi


Implementasi robot imitasi berbentuk humanoid tidak dilakukan dari
awal karena sebelumnya telah terdapat proyek Pi robot yang
menerbitkan semua kode pembuatannya (open source). Pi robot
merupakan mobile robot otonom yang diimplementasikan di atas ROS
dan menggunakan Microsoft Kinect sebagai mata utama robot.
Berbeda dengan Pi robot, Microsoft Kinect pada robot imitasi tidak
dihubungkan ke robot secara langsung namun demikian terdapat
sebagian kode yang dapat dipergunakan kembali untuk memudahkan
implementasi robot imitasi.
Dalam implementasi imitasi gerak manusia pada robot humanoid ini
ada dua pendekatan yang digunakan. Pendekatan pertama adalah
imitasi secara total dan pendekatan kedua adalah imitasi sebagian
gerak saja (parsial). Imitasi gerak manusia pada robot humanoid
secara total dilakukan dengan mentransformasikan setiap sudut sendi
pada tubuh manusia ke setiap sendi robot. Dengan demikian, robot
akan mengikuti gerakan manusia secara total walau hal ini hanya
mungkin jika robot memiliki sendi yang sedemikian mirip dengan
manusia. Oleh karena itu pada kasus imitasi total gerakan,
implementasi dilakukan menggunakan simulasi. Imitasi gerak manusia
pada robot humanoid secara parsial dilakukan dengan pembelajaran
gerakan manusia terlebih dahulu dengan algoritma machine learning,
selanjutnya robot akan menirukan gerakan yang diperagakan tersebut.

211

4.3.4.1 Imitasi Total Gerakan pada Simulasi

Seperti telah dijelaskan pada bagian sebelumnya, robot akan


menirukan gerak manusia secara total pada tiap sendinya. Prosesnya
dimulai dari akusisi data gambar dan depth dari manusia
menggunakan sensor Kinect sampai transformasi nilai sudut sendisendi manusia ke robot. Proses-poses tersebut dapat dilihat pada
bagian di bawah ini.
1. Modifikasi package pendukung (pi_tracker)
Package pi_tracker ini menyimpan program-program untuk
melakukan skeleton tracker, perhitungan joint states dan
menampilkan hasil joint states pada simulasi (aplikasi Rviz). Oleh
sebab itu hanya perlu dilakukan perubahan-perubahan sesuai
dengan kebutuhan sistem.
Berikut adalah gambar skeleton tracking (Gambar 4.44) yang
disediakan oleh package pi_tracker.

Gambar 4.44. Skeleton Tracking

Modifikasi yang dilakukan meliputi hal-hal sebagai berikut.


a. Pembuatan berkas launcher baru
Dalam pelaksaaan proyek ini para peneliti membuat berkas
launcher baru. Berkas launcher (.launch) merupakan berkas
yang digunakan sebagai argumen saat menjalankan program di
ROS. Berkas ini berisi daftar perintah-perintah yang akan
dijalankan. Sebagian isi dari berkas launcher ini sama dengan
berkas aslinya, hanya terdapat modifikasi untuk tipe robot

212

yang dijadikan simulasi pada Rviz. Berikut adalah modifikasi


yang dilakukan.
<param name=robot_description command=$(find xacro)/xacro.py '$(find
pi_tracker)/urdf/PremiumTypeA.xargo'" />
<param name="/use_sim_time" value="False" />

Berkas PremiumTypeA.xargo merupakan berkas yang berisi


robot model untuk bioloid tipe premium A. Berkas ini bisa
dikompilasi menjadi berkas URDF (unified robot description
file). Berikut adalah cuplikan isi berkas PremiumTypeA.xargo
yang merepresentasikan lutut robot.
<joint name="${prefix}_knee" type="revolute">
<parent link="${prefix}_upper_leg"/>
<child link="${prefix}_calf"/>
<origin rpy="0 0 0" xyz="0.00 0 -0.08"/>
<axis xyz="${reflect*1} 0 0"/>
<limit effort="1000.0" lower="-3.14" upper="3.14" velocity="0.5"/>
</joint>

Setelah ditampilkan pada aplikasi Rviz, berkas berkas


PremiumTypeA.xargo
yang
merepresentasikan
robot
humanoid premium type A dapat dilihat pada Gambar 4.45.

Gambar 4.45. Tampilan bioloid tipe Premium A pada rviz

213

b. Implementasi perhitungan joint states


Proyek Pi robot memang sudah mengimplementasikan
perhitungan joint states. Akan tetapi, perhitungan tersebut
hanya terbatas pada kedua lengan robot. Selain itu bentuk
tangan pirobot dan bioloid tipe premium A berbeda. Dengan
demikian perlu dilakukan perhitungan joint states untuk bioloid
sebagai berikut.
# Left Arm
left_shoulder_neck = self.skeleton['position']['neck']
- self.skeleton['position']['left_shoulder']
left_shoulder_elbow =
self.skeleton['position']['left_elbow'] self.skeleton['position']['left_shoulder']
left_elbow_hand = self.skeleton['position']['left_hand']
- self.skeleton['position']['left_elbow']
left_shoulder_hand =
self.skeleton['position']['left_hand'] self.skeleton['position']['left_shoulder']
left_shoulder_neck.Normalize()
left_shoulder_elbow.Normalize()
lh = left_elbow_hand.Normalize()
left_shoulder_hand.Normalize()
left_shoulder_lift_angle = (asin(left_shoulder_elbow.y()) )
left_shoulder_pan_angle = asin(left_shoulder_elbow.x())
+ self.HALF_PI
left_elbow_angle = acos(KDL.dot(left_shoulder_elbow,
left_elbow_hand)) * 4
left_wrist_angle = -left_elbow_angle / 2.0
left_elbow_angle = left_elbow_angle / 4.0
# Left Arm
right_shoulder_neck = self.skeleton['position']['neck']
- self.skeleton['position']['right_shoulder']
right_shoulder_elbow =
self.skeleton['position']['right_elbow'] self.skeleton['position']['right_shoulder']
right_elbow_hand =
self.skeleton['position']['right_hand'] self.skeleton['position']['right_elbow']
right_shoulder_hand =
self.skeleton['position']['left_hand'] self.skeleton['position']['left_shoulder']
right_shoulder_neck.Normalize()

214

right_shoulder_elbow.Normalize()

rh = right_elbow_hand.Normalize()
right_shoulder_hand.Normalize()
right_shoulder_lift_angle =
asin(right_shoulder_elbow.y())
right_shoulder_pan_angle = asin(right_elbow_hand.x())
- self.HALF_PI
right_elbow_angle = -acos(KDL.dot(right_shoulder_elbow,
right_elbow_hand)) * 4
right_wrist_angle = -right_elbow_angle / 2.0
right_elbow_angle = right_elbow_angle / 4.0
#foot
left_hip_torso = self.skeleton['position']['left_hip'] self.skeleton['position']['torso']
right_hip_torso = self.skeleton['position']['right_hip']
- self.skeleton['position']['torso']
left_knee_hip = self.skeleton['position']['left_knee'] self.skeleton['position']['left_hip']
right_knee_hip = self.skeleton['position']['right_knee']
- self.skeleton['position']['right_hip']
left_foot_knee = self.skeleton['position']['left_foot']
- self.skeleton['position']['left_knee']
right_foot_knee =
self.skeleton['position']['right_foot'] self.skeleton['position']['right_knee']
left_hip_torso.Normalize()
right_hip_torso.Normalize()
left_knee_hip.Normalize()
right_knee_hip.Normalize()
left_foot_knee.Normalize()
right_foot_knee.Normalize()
#base_to_left_hip_angle = - asin(left_hip_torso.z()) * 4
+ self.HALF_PI
#base_to_right_hip_angle = - asin(left_hip_torso.z()) *
4
left_hip_to_split_angle = -asin(left_knee_hip.x()) #+
self.HALF_PI
right_hip_to_split_angle = -asin(right_knee_hip.x()) #self.HALF_PI
left_hip_split_to_upper_angle = -asin(left_knee_hip.z())
#- self.HALF_PI
right_hip_split_to_upper_angle =
asin(right_knee_hip.z()) #- self.HALF_PI

215

left_knee_angle = acos(KDL.dot(left_knee_hip,
left_foot_knee))
right_knee_angle = -acos(KDL.dot(right_knee_hip,
right_foot_knee))

2. Pembuatan package sistem imitasi (student_project)


Package student_project ini berfungsi untuk menangkap
(subscribe)
pesan
(topic)
joint_state
dari
node
tracker_joint_controller dan mem-publish topictopic yang dapat
ditangkap oleh dynamixel controller untuk dikirimkan ke robot
melalui USB. Karena package ini mengambil data joint_state dari
package pi_tracker, dan memberikan data ke package
dynamixel_controller, maka pada berkas manifest-nya perlu
dilakukan pengaturan dependensi sebagai berikut.
<package>
<description brief="student_project">
student_project
</description>
<author>anwar</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
<url>http://ros.org/wiki/student_project</url>
<depend package="dynamixel_controllers"/>
<depend package="pi_tracker"/>
</package>

Topik joint_state sendiri memiliki elemen berupa empat buah


array. Tiap elemen yang bersesuaian (indeks yang sama)
menyimpan satu kesatuan informasi. Array pertama merupakan
name, array kedua adalah position, array ketiga adalah
velocity, dan array keempat adalah effort. Adapun tugas dari
package ini adalah menampilkan topik-topik sesuai dengan namanama yang tersimpan di array name dengan nilai posisi (pada
array position) yang bersesuaian. Berikut topik-topik yang
ditampilkan oleh node ini.
/left_shoulder_pan_joint/command
/left_hip_to_split/commnad
/left_hip_split_to_upper/command
/right_shoulder_pan_joint/command
/right_elbow_joint/command

216

/right_shoulder_lift_joint/command
/righthip_split_to_upper/command
/left_ankle/command
/left_shoulder_lift_joint/commnad
/left_ankle_roll/command
/left_knee/command
/base_to_right_hip/command
/right_hip_to_split/command
/left_elbow_joint/command
/right_ankle/command
/base_to_left_hip/command
/right_ankle_roll/command
/right_knee/command

3. Pembuatan Package Pengendali Motor Robot (dynamixel_tutorial)


Package ini berfungsi untuk menangkap (subscribe) topik yang
dipublish oleh package student_project. Selanjutnya nilai dari
topik - topik akan dikirimkan ke sendisendi robot melalui
transmisi data serial untuk dieksekusi. Setelah package dibuat
sesuai dengan petunjuk, selanjutnya untuk membuat package ini
dapat menjalankan fungsi yang diinginkan, maka dilakukan
tahapan-tahapan sebagai berikut.
a. Membuat berkas launcher (.launch)
Sesuai penjelasan sebelumnya bahwa berkas launcher
merupakan berkas yang menyimpan argumen pada saat
package dipanggil. Argumen tersebut berupa urutan program
yang dijalankan beserta parameter yang digunakan. Pada
pelaksanaan student project ini dibuat suatu berkas launcher
yang bernama student_project-full.launch. Berikut adalah isi
file student_project-full.launch tersebut.
<!-- -*- mode: XML -*- -->
<launch>
<!-- Load controller configuration to parameter server
-->
<rosparam file="$(find
dynamixel_tutorials)/config/sp_premium_a.yaml"
command="load"/>
<!-- start specified joint controllers -->
<node name="dynamixel_controller_spawner"
pkg="dynamixel_controllers" type="controller_spawner.py"
args="--manager=dxl_manager
--port=pan_tilt_port

217

--type=simple
left_knee
left_ankle
left_elbow_joint
right_shoulder_lift_joint
right_ankle
right_shoulder_pan_joint
base_to_left_hip
right_elbow_joint
left_shoulder_pan_joint
left_hip_split_to_upper
right_ankle_roll
base_to_right_hip
left_hip_to_split
right_hip_to_split
left_ankle_roll
right_hip_split_to_upper
right_knee
left_shoulder_lift_joint"
output="screen"/>
<node name="dynamixel_manager"
pkg="dynamixel_controllers" type="controller_manager.py"
required="true" output="screen">
<rosparam>
namespace: dxl_manager
serial_ports:
pan_tilt_port:
port_name: "/dev/ttyUSB0"
baud_rate: 1000000
min_motor_id: 1
max_motor_id: 18
update_rate: 20
</rosparam>
</node>
</launch>

Dalam berkas launcher ini kita dapat mengatur ID motor yang


digunakan, port USB yang digunakan, baud rate yang
digunakan, maupun topics yang akan diambil datanya. Berkas
controller spawner_manager.py dan controller_manager.py
merupakan berkas yang sudah dibuat oleh pengembang driver
motor dynamixel pada ROS sehingga tidak perlu diubahubah
lagi. Berkas ini berisi implementasi pengiriman data ke motor
servo dynamixel melalui USB. Sedangkan berkas
sp_premium_a.yaml merupakan berkas yang berisi konfigurasi
keterkaitan antara nama topik dengan ID motor.

218

b. Konfigurasi berkas sendi robot (sp_premium_a.yaml)


Seperti yang dijelaskan sebelumnya bahwa berkas ini berisi
konfigurasi keterkaitan anatara nama topik dengan ID motor.
Berikut adalah cuplikan berkas sp_premium_yaml.
left_knee:
controller:
package: dynamixel_controllers
module: joint_position_controller
type: JointPositionController
joint_name: left_knee_joint
joint_speed: 2.0
motor:
id: 14
init: 512
min: 0
max: 1023
left_ankle:
controller:
package: dynamixel_controllers
module: joint_position_controller
type: JointPositionController
joint_name: left_ankle_joint
joint_speed: 2.0
motor:
id: 16
init: 512
min: 0
max: 1023
left_shoulder_pan_joint:
controller:
package: dynamixel_controllers
module: joint_position_controller
type: JointPositionController
joint_name: left_shoulder_lift_joint_joint
joint_speed: 2.0
motor:
id: 4
init: 512
min: 0
max: 1023

Pada berkas sp_premium_yaml setiap topik yang ditulis pada


berkas launcher student_project-full.launch dikonfigurasi dengan
ID motor tertentu, nilai awal (init), derajat minimal yang diizinkan
(min). dan derajat maksimal yang diizinkan (max). Jika dilihat

219

secara keseluruhan interaksi antar komponen pada hasil


implementasi versi 1 ini dapat dilihat pada gambar 4.46.

Gambar 4.46. Interaksi antara Komponen di Dalam Robot Bioloid


220

Hasil screenshot dari implementasi ini dapat dilihat pada Gambar 4.47.

(a)

(b)

221

(c)

(d)

Gambar 4.47. Tampilan Bioloid Tipe Premium A pada Rviz

222

4.3.4.2 Imitasi Sebagian Gerakan pada Riil Robot

Seperti yang dijelaskan pada bagian sebelumnya, robot juga akan


diprogram untuk menirukan gerak manusia secara parsial atau
sebagian
saja.
Terdapat
beberapa
tahapan
dalam
mengimplementasikan peniruan sebagian gerak ini. Pertama-tama,
data gerakan manusia diakuisisi dengan sensor Kinect. Selanjutnya,
akan dilakukan klasifikasi untuk memilih gerakan mana yang akan
dieksekusi oleh robot berdasarkan data gerakan manusia tersebut.
Oleh sebab itu, gerakan-gerakan yang bisa dilakukan robot terbatas
seperti yang diuraikan pada Tabel 4-1. Klasifikasi Gerakan Robot.
Tabel 4-1. Klasifikasi Gerakan Robot

No
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.

Gerakan
Jalan ke depan
Jalan ke belakang
Jalan ke kanan
Jalan ke kiri
Jalan ke depan kanan
Jalan ke depan kiri
Tendang dengan kaki kanan
Tendang deagan kaki kiri
Putar ke kanan
Putar ke kiri
Hadang ke kanan
Hadang ke kiri
Tinju ke depan

Sesuai dengan rancangan yang dibuat bahwa imitasi gerak manusia


pada robot pemain bola versi 2 ini tidak dilakukan secara full, akan
tetapi dicari terlebih dahulu motion manakah yang sesuai dengan
gerakan manusia yang terekam. Oleh sebab itu, implementasi versi 2
ini dilakukan dengan membuat satu package saja bernama
ui_robosoccer. Package ini berfungsi mengakuisisi data skeleton dari
manusia dan mencari gerakan mana yang sesuai dengan data skeleton.

223

Tahap-tahap yang dilalui dalam membuat package ini adalah sebagai


berikut.
1. Konfigurasi dependensi package ui_robosoccer
Package ini bergantung pada berbagai program yang ada pada
package pi_tracker. Oleh sebab itu perlu dilakukan setting
dependensi sebagai berikut.
<package>
<description brief="ui_robosoccer">
ui_robosoccer
</description>
<author>fr</author>
<license>BSD</license>
<review status="unreviewed" notes=""/>
<url>http://ros.org/wiki/ui_robosoccer</url>
<depend package="pi_tracker"/>
</package>

2. Pembuatan berkas launcher


Untuk memberikan argumen program apa saja yang akan
dijalankan sewaktu package digunakan beserta parameternya
maka dibuat berkas launcher sebagai berikut.
<launch>
<arg name="fixed_frame" value="openni_depth_frame"
/>
<param name="robot_description" command="$(find
xacro)/xacro.py '$(find
pi_tracker)/urdf/pi_robot.urdf.xacro'" />
<node name="skeleton_tracker" pkg="pi_tracker"
type="skeleton_tracker">
<param name="load_filepath" value="$(find
pi_tracker)/params/SamplesConfig.xml" />
<rosparam command="load" file="$(find
pi_tracker)/params/tracker_params.yaml" />
<param name="fixed_frame" value="($arg
fixed_frame)" />
</node>
<node name="tracker_command"
pkg="ui_robosoccer" type="tracker_command.py"
output="screen">
<!--rosparam command="load" file="$(find
pi_tracker)/params/tracker_params.yaml" /-->
</node>
</launch>

224

3. Pembuatan fungsi pengiriman data secara serial


Pengiriman data secara serial menjadi sangat penting karena
pesan untuk robot mengenai gerakan yang akan dilakukan tidak
dikirimkan melalui motor dynamixel lagi, melainkan melalui
controller robot (CM-510). Berikut ini adalah pengiriman data
secara serial yang diimplementasikan dalam berkas
tracker_command.py dengan nama "fungsi kirim".
def kirim(self, kata):
a = int(kata)
b1 = 255
b2 = 85
b3 = a%256
b4 = b1-b3
b5 = a/256
b6 = b1-b5
kata =
chr(b1)+chr(b2)+chr(b3)+chr(b4)+chr(b5)+chr(b6)
self.ser.write(kata)

4. Penentuan gerakan yang akan ditiru oleh robot


Selanjutnya, tahap terakhir yang paling penting dari penentuan
gerakan adalah mengimplementasikan cara penentuan motion
yang akan dilakukan oleh robot. Proses-proses dalam penentuan
gerakan ini adalah sebagai berikut.
a. Definisi aksi berbagai gerakan pada riil robot
def right_foot_up(self):
if self.confident(['right_foot', 'left_foot']):
if
(self.skeleton['position']['right_foot'].y() self.skeleton['position']['left_foot'].y()) /
self.shoulder_width > 0.7:
return True
elif
(self.skeleton['position']['right_knee'].y() >
self.skeleton['position']['right_hip'].y()):
return True
return False
def left_foot_up(self):
if self.confident(['right_foot', 'left_foot']):

225

if (self.skeleton['position']['left_foot'].y() self.skeleton['position']['right_foot'].y()) /
self.shoulder_width > 0.7:
return True
return False
def arms_crossed(self):
if self.confident(['left_elbow', 'right_elbow',
'left_hand', 'right_hand']):
if copysign(1.0,
self.skeleton['position']['left_elbow'].x() self.skeleton['position']['right_elbow'].x()) == \
-copysign(1.0,
self.skeleton['position']['left_hand'].x() self.skeleton['position']['right_hand'].x()):
return True
return False
def move_forward(self):
if self.confident(['torso']):
if (self.jarak_awal - self.jarak_kini) > 0.2:
return True
return False
def move_backward(self):
if self.confident(['torso']):
if (self.jarak_kini - self.jarak_awal) > 0.2:
return True
return False
#gerakan belum teruji
def rr_punch(self):
if self.confident(['right_shoulder','right_hand']):
if(self.skeleton['position']['right_shoulder'].x()
- self.skeleton['position']['right_hand'].x() < -0.35):
return True
return False
def rf_punch(self):
if self.confident(['right_shoulder','right_hand']):
if(self.skeleton['position']['right_shoulder'].z()
- self.skeleton['position']['right_hand'].z() > 0.35):
return True
return False
def ll_punch(self):
if self.confident(['left_shoulder','left_hand']):
if(self.skeleton['position']['left_shoulder'].x()
- self.skeleton['position']['left_hand'].x() > 0.35):
return True
return False

226

def move_right(self):
if self.confident(['torso']):
if (self.posisi_kini_x - self.posisi_awal_x) >
0.2:
return True
return False
def move_left(self):
if self.confident(['torso']):
if (self.posisi_kini_x - self.posisi_awal_x) < 0.2:
return True
return False
def turn_left(self):
if self.confident(['left_shoulder','right_shoulder']):
if(self.skeleton['position']['left_shoulder'].z()
- self.skeleton['position']['right_shoulder'].z() > 0.2):
return True
return False
def turn_right(self):
if self.confident(['left_shoulder','right_shoulder']):
if(self.skeleton['position']['left_shoulder'].z() self.skeleton['position']['right_shoulder'].z() < -0.2):
return True
return False

b. Pemetaan aksi terkenali terhadap aksi robot


if self.gestures['right_foot_up']():
command = "TENDANG KANAN"
self.kirim(72)
# Raise left knee to engage joint teleoperation
elif self.gestures['left_foot_up']():
command = "TENDANG KIRI"
self.kirim(68)
elif self.rr_punch():
command = "TINJU KANAN KANAN"
self.kirim(136)
elif self.rf_punch():
command = "TINJU KANAN DEPAN"
self.kirim(129)
elif self.ll_punch():
command = "TINJU KIRI KIRI"
self.kirim(132)

227

elif self.turn_left():
command = "PUTAR KIRI"
self.kirim(4)
elif self.turn_right():
command = "PUTAR KANAN"
self.kirim(8)
elif self.gestures['move_forward']():
command = "MAJU"
if self.move_right():
command += " KANAN"
self.kirim(9)
elif self.move_left():
command += " KIRI"
self.kirim(5)
else:
self.kirim(1)
elif self.gestures['move_backward']():
command = "MUNDUR"
self.kirim(2)
elif self.move_left():
command = "KIRI"
self.kirim(6)
elif self.move_right():
command = "KANAN"
self.kirim(10)
else:
command = "STOP"
self.kirim(0)

Untuk mengimplementasikan imitasi gerak


manusia pada robot humanoid ini, controller
robot perlu diberikan piranti lunak berupa
standard motion bioloid premium A, dan standard
task bioloid premium. Hal tersebut dilakukan
untuk mempercepat komputasi dan mencegah
berhentinya program maka visualisasi bisa
ditiadakan. Interaksi antara komponen ROS pada
imitasi gerak manusia pada robot humanoid ini
dapat dilihat pada Gambar 4.48.

228

Gambar 4.48. Rxgraph Imitasi Gerak Manusia pada Robot humanoid

Screenshot hasil implementasi imitasi gerakan manusia pada


robot humanoid secara parsial dapat dijelaskan pada Gambar
4.49.

229

Gambar 4.49. Screenshot hasil implementasi imitasi gerakan manusia


pada robot humanoid
4.3.4.3 Uji Ketepatan Gerakan Robot Imitasi

Eksperimen ini dilakukan dengan mengambil sampel dari setiap


gerakan yang akan dieksekusi robot. Tabel 4-2 menunjukkan jumlah
data sampel yang digunakan.
Tabel 4-2. Data Sampel

No.
1.
2.
3.
4.
5.
6.
7.
8.
9
10.
11.

Pergerakan
Standby
Move Right
Move Left
Move Forwareg
Turn Right
Turn Left
Move Backward
Right Kick
Left Kick
Right Punch
Left Punch

Jumlah Sample
400
400
400
400
400
400
400
400
400
400
400

230

12.
13.

Left Forward Punch


Right Forward Punch

400
400

Setelah dilakukan percobaan, diperoleh tingkat akurasi pengenalan


gerakan manusia seperti pada Tabel 4-3.
Tabel 4-3. Tingkat Akurasi

Fold
1.
2.
3.
4.
5.
6.
7.
8.
9
10.
Rata- Rata

Accuracy (%)
99.81
100.00
99.81
100.00
99.81
100.00
99.81
99.81
99.81
99.81
99.87

Kappa
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0

4.4 Kesimpulan dan Pengembangan Lebih Lanjut

Pada bab ini telah dijelaskan rancangan fisik robot humanoid dan
komponen-komponen yang dipergunakan dalam merakit robot
humanoid. Selain itu, telah dijelaskan pula penerapan dan aplikasi
robot humanoid tersebut untuk pertandingan robot soccer dan robot
imitasi.
Pada penelitian robot humanoid peluang pengembangan robot masih
cukup terbuka, mengingat robot humanoid dirakit menggunakan
paket yang dijual bebas dan disertakan dengan perangkat developer
kit yang baik. Selain itu, terdapat alternatif lain untuk mendapatkan
komponen rakitan robot dengan kombinasi kelengkapan yang
berbeda. Pada pengembangan selanjutnya, diharapkan robot
humanoid memiliki pergerakan yang lebih lugas dengan peningkatan
spesifikasi komponen yang lebih baik. Sistem kecerdasan sangat
231

berpengaruh pada pertandingan robot soccer. Pada pengembangan


kedepan,
kecerdasan
robot
sebagai
kawanan
yang
mengimplementasikan PSO diharapkan dapat memberikan
pertandingan yang lebih positif.

232

5. Daftar Pustaka
Albert Huang, et.al, Visual Odemetry For GPS-Denied Flight And
Mapping
Using
A
Kinect,
http://groups.csail.mit.edu/rrg/index.php?n=Main.
VisualOdometryFor GPS-DeniedFlight, 21 Juni 2012.
Arjomandi Mazier, (2006), Classification of Unmanned Aerial
Vehicle, The University of Adelaide.
Ahmad Hafidh. (2011). Simulasi Perluasan Jaringan Telekomunikasi
secara Otonom dengan Mobile Robot di daerah Bencana
menggunakan Open Dynamic Engine, Fakultas Ilmu
Komputer, Universitas Indonesia.
Bager Zarei , Mohammad Zeynali dan Vahid Majid Nezhad Novel
,(2010), Cluster Based Routing Protocol in Wireless Sensor
Networks, IJCSI International Journal of Computer Science
Issues, Vol. 7, Issue 4, No 1, July 2010 .
Bernard Kolman dan David R. Hill, (2004), Elementary Linear
Algebra 8th Edition. New Jersey: Pearson International
Edition.
Bresciani, T. (2008). Modelling, Identification and Control. Lund:
Department of Automatic Control Lund University.
Charles E. Perkins dan Elizabeth M. Royer. (1999), Ad-hoc OnDemand Distance Vector Routing, In Proceedings Of The 2nd
Ieee Workshop On Mobile Computing Systems And
Applications.
David B. Johnson, David A. Maltz dan Josh Broch , (1999), DSR: The
Dynamic Source Routing Protocol for Multi-Hop Wireless Ad
Hoc Networks, Mobile Computing The Kluwer International
Series in Engineering and Computer Science Volume 353,
1996, pp 153-181
Deza, M. M., dan Deza, E. (2009). Encyclopedia of Distances. New
York: Springer.
Documentation, http://www.ros.org/wiki/, 18 Juni 2012.

233

E. Bonabeau, M. Dorigo, dan G. Theraulaz, (1999) ,Swarm


Intelligence: From Natural to Artificial Systems. Oxford
University Press.
E. Budianto, M.S. Alvissalim, A. Hafidh, A. Wibowo, W. Jatmiko, B.
Hardian, P. Mursanto, A. Muis, (2011),Telecommunication
Networks Coverage Area Ex- pansion in Disaster Area Using
Autonomous Mobile Robots: Hardware and Software
Implementation, IEEE International Conference on Advanced
Com- puter Science and Information Systems, pp. 113118.
Faris Al Afif, (2011), Implementasi Prototipe Sistem Pengaturan
Lampu Lalu Lintas Terdistibrusi dengan Optimasi Pengenalan
dan Penjejakan Kendaraan Berbasis Pemrosesan Video.
Skripsi Sarjana, Fakultas Ilmu Komputer, Universitas
Indonesia.
G.S.S. Kalaiarasi R, N. Pari S., Sridharan D. (2010). Energy Efficient
Clustering and Routing in Mobile Wireless Sensor Network,
International Journal of Wireless & Mobile Networks
(IJWMN), vol.2, pp. 106-114.
Gary Bradski dan Adrian Kaehler, (2008), Learning OpenCV
Computer Vision with the OpenCV Library. Sebastopol:
OReilly Media, Inc.
I Made Agus Setiawan, (2011), Sistem Pengenalan Kelainan Aritmia
menggunakan Metode Fuzzy-Neuro Generalized Learning
Vector Quantization. Tesis, Fakultas Ilmu Komputer,
Universitas Indonesia.
Ikemoto, Y., Hasegawa, Y., Fukuda, T., & Matsuda, K. (2005).
Gradual spatial pattern formation of homogeneous robot
group. Information Sciences 171 , 431-445.
J. Takahashi, K. Sekiyama, T. Fukuda, (2007), Self- deployment
algorithm for mobile sensor network based on connection
priority criteria with obstacle avoidance, IEEE Robotics and
Biomimetics, pp. 14341439.
J. A. Tenreiro Machado dan Manuel F. Silva, "An Overview of
Legged Robots", to appear. doi=10.1.1.106.8192

234

J. N. Al-Karaki & A. E. Kamal,(2004) ,Routing Techniques in


Wireless Sensor Networks : A Survey, IEEE Wireless
Communications, vol.11, pp. 6-28.
J. Larranaga, L. Muguira, J.M. Lopez-Garde, J.I. Vazquez. (2010). An
Environment Adaptive ZigBee-based Indoor Positioning
Algorithm. 2010 International Conference on Indoor
Positioning and Indoor Navigation.
Kristof Goris, (2005), Autonomous Mobile Robot Mechanical Design.
Tesis, Faculteit Ingenieurswetenschappen, Vrije Universiteit
Brussel.
Lua: about. (2012). Retrieved Juni 18, 2012, from The Programming
Language Lua: http://www.lua.org/about.html.
Matthias Wahde dan Jimmy Pettersib. "A brief overview of bipedal
robotics research", In Proceedings of the 8th Mechatronics
Forum International Conference, 2002, pp. 480-488.
N. B. Ignel, N. Rasmusson, J. Matsson, "An overview of legged and
wheeled robotic locomotion", 2012, to appear.
Pambudi, N. W. (2009). Pembentukan Formasi Pola Robot Homogen
Secara Gradual: Studi Kasus pada Robot Lego Mindstorms
NXT. Depok: Fakultas Ilmu Komputer, Universitas Indonesia.
R.C.Kooijman (2010). Evaluation of open dynamics engine
software. Eindhoven University of Technology Department of
Mechanical Engineering Dynamics and Control.
R. J. Stuart, P. Novrig. (2003). Artificial Intelligence A Modern
Approach Second Edition, Prentice Hall, New Jersey.
Robotics, (2012), Wikibooks open books for an open world.
Roland Siegwart, dan Illah R. Nourbakhsh, (2004), Introduction to
Autonomous Mobile Robots. MIT Press.
Sato dan K. Yamada, (1995), Generalized learning vector
quantization, Advances in Neural Information Processing
Systems (NIPS), vol. 7, pp. 423-429.
T. Kohonen, (1997), Self-Organizing Maps. Springer, Berlin.
The device, http://ardrone.parrot.com/parrot-ardrone/uk/support/
questions-answers , 18 Juni 2012.
The UAV - The Unmanned Aerial Vehicle. (2012). Retrieved May 21,
2012, from Wikipedia: http://www.theuav.com/
235

Thomas Brunl, (2006), Embedded Robotics, Mobile Robot Design


and Applications with Embedded Systems. Perth: Springer.
V. Dewanto dan R. Prasetya. (2010). Hardware Documentation of
Track Mobile Robot Alfathvrss. Technical Report. Fakultas
Ilmu Komputer Universitas Indonesia.
World Robotics 2012 Service Robots Executive Summary. (2012).
Retrieved April, 2013, International Federation Robotics, url:
http:// http://www.ifr.org/service-robots/statistics/
Wu, K.-Y. (2011). Multiple Mobile Robots Formation Control and
Obstacle Avoidance. 3rd International Conference on
Advanced Computer Control (pp. 639-643). Harbin: Institute
of Electrical and Electronics Engineers.
Yun, B., Chen, B. M., Yew, L. K., & Lee, T. H. (2010). Design and
implementation of a leader-follower cooperative control
system for unmanned helicopters. Journal of Control Theory
and Applications , 61-68.
Z. Wang, Z. Chi, dan D. Feng, (2003), Shape based leaf image
retrieval, IEEE Proc, Vis, Image Signal Process, Vol. 150, No.
1, Februari 2003.

236

6. Glosarium
Automata
Ad-hoc routing protocol

Sebutan robot pra-modern, yang


tidak memiliki kemampuan otonom
konvensi
atau
standar
yang
mengontrol bagaimana kumpulan
node-node menyetujui rute paket
mana yang ditempuh diantara
computing devices dalam sebuah
mobile ad-hoc network (MANET)

Ant Colony Optimization (ACO)

Merupakan
implementasi
intelligence

Application Programming Interface

Metode atau Fungsi khusus yang


didefinisikan oleh sistem operasi
atau aplikasi tertentu sehingga
programmer dapat melakukan
request
Ssebuah mesin otomatis yang
mampu bergerak pada suatu kondisi
tertentu

Autonomous Mobile Robot (AMR)

salah
dari

satu
swarm

Cartesian
Cluster

Koordinat dua dimensi dalam x,y

Cluster Head

Bagian yang mengatur Setiap


cluster dalam setiap substructure

Cluster Head Election

Bertujuan membentuk cluster


dari sekelompok mobile node
yang saling berhubungan

Contour

Karakteristik sketsa atau silout dari


suatu objek 3D
Pada permasalahan optimisasi,
merupakan fungsi matematis yang

Cost Function

237

substructure dari network yang


saling terhubung

Dead reckoning

Degree of Freedom (DOF)


Differential Steering

Feature

Full autonomy

Gait

Gradient Descent

Integer

Komputasi Cloud

ladar

Latency

berusaha
diminimalisasi/maksimalisasi
suatu prosedur matematis untuk
menentukan posisi sebuah kapal
pada suatu saat menggunakan
pengetahuan
mengenai
posisi
sebelumnya
dan
perkiraan
perpindahan yang dialami kapal
tersebut dalam suatu periode waktu
Derajat kebebasan pada lengan
robot
Mekanisme berbelok menggunakan
prinsip perbedaan arah rotasi roda
pada sisi yang berbeda
Pada pembelajar mesin
menunjukkan ciri khusus dari input
data. Umumnya berdimensi lebih
dari dua
Derajat robot dalam bergerak
otonom tanpa campur tangan
manusia
Pada bidang robotika, menunjukkan
total kemungkinan kombinasi kaki
dalam bergerak
Pada permasalahan optimalisasi,
merupakan metode untuk mencari
lokal optimum
Nilai bilangan bulat pada komputer
dengan rentang terbatas. Mesin 32bit memiliki rentang 0 - 4 GB
Komputasi menggunakan sumber
daya tak terbatas yang tersimpan
dalam sistem cloud
Teknologi pemindaian untuk
membuat mapping 3D lokal
menggunakan gelombang laser
waktu tunggu yang terjadi dalam
sistem
238

Library

Pada bidang software engineering,


merupakan program pendukung
yang disediakan 3rd party untuk
kemudahan pembuatan proyek
piranti lunak.

Lokomotif

Pada bidang robotika, menunjukkan


sitem bergerak robot
kegiatan yang sangat penting dalam
penanggulangan bencana, karena
kegiatan ini merupakan kegiatan
sebelum terjadinya bencana yang
dimaksudkan untuk mengantisipasi
agar dampak yang ditimbulkan dapat
dikurangi

Mitigasi

Mobile ad-hoc Network (MANET)

jaringan yang memungkinkan setiap


node yang terhubungkan oleh
sebuah wireless link dapat bergerak
bebas

Motion Planning

Perencanaan lintasan yang akan


dilalui
Pelaku yang menentukan motion
planning
Ortogonal, bidang yang tegak lurus
dengan bidang benda saat ini
Mandiri
perbandingan antara paket routing
yang dikirimkan melalui jaringan
dengan jumlah paket data yang
berhasil sampai di tempat tujuan

Motion Planner
Orthogonal
Otonom
Overhead

Particle Swarm Optimization (PSO)

sebuah algoritma pencarian yang


melibatkan sebuah populasi yang
berbasis simulasi perilaku sosial dari
burung-burung, lebah atau ikanikan?

Path Discovery

Suatu proses yang dilakukan


apabila sebuah node sumber

239

ingin mengirimkan sebuah data


kepada node tujuan, dimana node
sumber tidak memiliki informasi
routing tentang node tujuan
tersebut.
Pitch
Pixel
Pseudocode

Quadcopter
Radar

Received Signal Strength Indicator


(RSSI)

Rotasi dalam koordinat y


Pada citra digital menunjukkan posisi
koordinat dalam x,y
Kode atau tanda yang menyerupai
(pseudo) atau merupakan pejelasan
cara menyelesaikan suatu masalah
Model helikopter mempunyai 4 buah
motor untuk terbang
Teknologi pemindaian untuk
mencari objek bergerak
menggunakan gelombang radio
Besaran kuat sinyal hasil pengukuran
Xbee

Remote
Robot Al-Fath

Berjarak
robot yang telah dikembangkan
untuk
kepentingan
penelitian
pencarian sumber kebocoran gas
atau sering disebut dengan istilah
Odor Source Localization (OSL).

Roll
Route Table Management

Rotasi dalam koordinat x

Scalability

kemampuan dari jaringan dalam


suatu sistem untuk peningkatan
kerja
sebagai
akibat
dari
pertumbuhan jumlah nodes yang

Suatu proses untuk memelihara


koneksi ke dan dari link-link yang
aktif, agar node sumber tetap
dapat terhubung dengan node
tujuan

240

terlibat dalam suatu network


Sink Localization Algorithm

Merupakan suatu algoritma hasil


kustomisasi dari algoritma Particle
Swarm Optimization (PSO) untuk
pencarian BTS dengan memodifikasi
jenis data yang digunakan sebagai
parameter global-best dan local best

Skid Steering

Sebutan Differential Steering pada


robot berantai-roda (track)
Protokol jaringan yang menjamin
topologi jaringan bebas-perulangan
untuk penghubung Ethernet LAN

Spanning Tree Protocol

Stagnasi

Suatu kondisi dimana hanya satu


bagian tertentu saja dari suatu area
yang dieksplorasi

String

Representasi dari nilai karakter pada


komputer. String tersusun dari char
yang dapat mewakili seluruh alfabet.
Nilai ambang batas. Jika suatu nilai
melewati nilai ini, maka nilai tesebut
dipass. Dapat berlaku juga
kebalikannya.
Jenis mesin yang digerakkan dengan
tenaga jet
Kendaraan yang memiliki
kemampuan untuk terbang tanpa
adanya campur tangan manusia
untuk mengarahkannya
Kendaraan darat yang memiliki
kemampuan bergerak otonom tanpa
operator
Pada bidang pemrograman
menunjukkan tempat penyimpanan
sebuah data berdasarkan tipe
tertentu misalnya int, double, string
Koneksi jaringan tanpa kabel
Rotasi dalam koordinat z

Threshold

Turbo Jet
Unmanned Aerial Vehicle

Unmanned Ground Vehicle

Variabel

Wireless
Yaw
241

Zigbee

Sebuah protokol komunikasi untuk


komunikasi jarak dekat yang
beroperasi pada frekuensi 2.4 GHz

242

7. Daftar Indeks
A
Accelerometer ..................................... 174
ADC...................................... 171, 172, 174
ad-hoc network.................................... 100
agent...................................................... 87
Al-Fath ........ 54, 67, 71, 89, 90, 96, 98, 240
AMR............................................... 96, 237
Analog Digital Converter ..................... 172
Ant Colony Optimization ..................... 237
Application Programming Interface ..... 92,
176
AR Drone ............................................. 115
Artificial Intelligence.... 176, 250, 251, 252
Asimo..................................................... 24
Autonomous ............................ 23, 87, 149
Mobile Robot............................ 96, 237

B
Backtracking .................................... 70, 75
Bandwidth-constrained ....................... 101
Base station ......................................... 104
Bidirectional ........................................ 101
Binary image........................................ 130
Bioloid
kit 173
Premium Kit .................................... 190
BTS........ 87, 89, 92, 95, 96, 97, 98, 99, 241
Bullet physics engine ........................... 143

C
Capacity link ........................................ 101
Carrier.................................................... 85
CCD .............................................. 130, 131
Checksum ............................................ 190
Child object.................................. 145, 146
Circular movement .............. 153, 159, 161
Complete graph ............................... 75, 76
Constraint Force Mixing ........................ 63
Constriction Factor ................................ 81
Contour................................................ 130
Controller ....171, 180, 201, 210, 216, 218,
225, 228

243

Core Extraction Distributed Ad Hoc


Routing............................................103
Cost function........................................133

D
Data ...17, 85, 87, 89, 90, 92, 99, 104, 111,
126, 128, 129, 130, 131, 133, 135, 145,
153, 170, 177, 181, 190, 203, 205, 212,
216, 217, 218, 223, 225, 230, 239, 241
Dead Reckoning .....................................82
Destination Sequenced Distance Vector
........................................................102
Distance ....................... 59, 61, 67, 96, 173
sensor.................................... 61, 67, 78
sensor beam......................................67
Distributed
Bellman-Ford...................................102
Dummy object .....................................145

E
Encoder............................................83, 90
Energy-constrained operation .............101
Error..................................... 133, 134, 138
Reduction Parameter ........................63
Extended
Position By Line......... 59, 60, 75, 76, 77

F
Feature
extraction........................................131
Fixed
-cable ..............................................101
network...........................................101
Floodfill ............................................70, 76
Frame.....................................................62

G
Gain factor ...........................................133
Generalized Learning Vector Quantization
........................................................234
Global

best................................. 81, 82, 95, 99


Positioning System ......................... 111
GLVQ............................ 126, 128, 133, 135
GPS ...................................... 111, 144, 233
Gradient Descent................................. 133
Grayscale ............................................. 130
Gyroscope............................................ 111

H
Handle ................................................. 146
Hardware..................................... 115, 170
Hardwired link ..................................... 101
Header................................. 103, 145, 173
Host ..................................... 100, 101, 102
Hover................................................... 113
Hybrid Protocol ................................... 103

I
IMU.............................. 111, 115, 116, 144
Inertial force ........................................ 181
Inertial Measurement Unit .......... 109, 111
Initialization........................................... 62
International Federation of Robotics .... 17
IR receiver............................................ 173

J
Joint states .................................. 212, 214

L
Lagrange multiplier velocity .................. 62
Launcher...............212, 217, 218, 219, 224
Leader-Follower................................... 148
Learning Vector Quantization.............. 133
Library...................61, 63, 67, 94, 177, 202
Linux .................................... 116, 176, 202
Local best................81, 82, 89, 95, 99, 241
Localization...............67, 82, 84, 89, 95, 97
LVQ ...................................................... 133

M
Mac...................................................... 202
MANET..................100, 101, 102, 237, 239
Microsoft Kinect .................. 177, 201, 202
Minimum Spanning Tree ........... 59, 75, 77

Missclassification error ........................133


Mobile
ad-hoc ............................. 100, 102, 237
ad-hoc Network ...................... 100, 239
host ......................... 100, 102, 103, 104
node ........................................100, 237
platform ..........................................101
robot ...........................................82, 86
wireless networks............................101
Motion
Capture ...........................................202
Stability Control ..............................210
Multitasking .........................................202

N
Node ......60, 61, 77, 78, 79, 85, 91, 93, 95,
100, 101, 102, 103, 104, 127, 136, 178,
216, 237, 239, 240
Noise ....................................................101
Novel Cluster Based Routing................104
Numerical Control Machine Tools .........26

O
Obstacle Avoidance ............. 148, 149, 236
Odor Source Localization ............... 54, 240
Offset Servo .........................................173
On Demand Protocol ...........................102
Open Dynamic Engine... 61, 62, 63, 67, 68,
70, 71, 74, 75, 76, 77, 79

P
Packet drop............................................99
Particle Swarm Optimization .. 81, 94, 239,
241
Path................................ 59, 67, 69, 74, 76
Planning ................................ 67, 69, 75
PCA............................................... 131, 132
Physics Engine......................................143
Pitch .....................................................113
Pixel ............................. 116, 135, 136, 137
Point-to-point ........................................91
Position By Line. 57, 58, 59, 60, 61, 69, 75,
77, 78, 89, 96, 97
Preprocessing ......................................129
Prim .......................................................77
Proactive Protocol ...............................102

244

Proximity ............................. 143, 146, 148


PSO .................81, 82, 89, 94, 95, 239, 241
Puller ................................................... 113
Pusher.................................................. 113

Q
Quadcopter .110, 111, 112, 113, 114, 115,
144, 145, 146, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 158, 159,
160, 161, 162, 164, 166
Quadratic Optical Encoder .................... 83
Quartenion matrix ................................. 68

R
Range............................................. 72, 100
Reactive protocol................................. 102
Real Time Operating System ................. 89
Received Signal Strength Indicator 85, 240
Receiver......................................... 85, 174
Remote control.................................... 107
Repeat time ......................................... 181
Roboplus...................... 179, 180, 181, 182
Roboplus Manager .............................. 180
Robot Arm ....................................... 26, 27
Robot Humanoid ................................. 170
Robot Operating System ............. 136, 176
Roll................................................. 68, 113
ROS ......127, 136, 176, 177, 178, 179, 202,
203, 212, 218, 228
ROS electric ......................................... 202
Route Table Management ................... 240
Router.......................................... 101, 103
Routing ...79, 100, 102, 103, 104, 237, 239
Routing protocol.................................. 102
RSSI.......................................... 85, 95, 240

S
Script ............143, 144, 145, 146, 147, 149
Self
-configured ..................................... 100
Sensing .................................................. 57
Sensor proximity......................... 146, 148
servo motor ......................................... 180
Signal ................................... 144, 145, 248
Stability-based Adaptive Routing.... 102
Simulation loop ..................................... 62

245

Single object.........................................130
Sink ...60, 61, 72, 77, 78, 79, 80, 89, 95, 97
Skeleton Tracking.................................212
Software. 92, 115, 170, 179, 200, 202, 228
Source
routing ............................................103
Tree Adaptive Routing ....................102
Spanning Tree ......................................104
Speed Rate ...........................................181
Substructure ........................................237
Swarm intelligence...............................237

T
Table-driven.........................................102
Take off ................................................114
Target.....57, 59, 60, 61, 67, 70, 71, 72, 74,
75, 77, 78, 79, 80, 89, 91, 96, 149, 150,
159
Threshold ................................... 60, 77, 82
Throughput ..........................................101
Transceiver...................................144, 145

U
UART ...................................... 92, 175, 190
Ultrasonic Range Sensor ......................111
Unidirectional ......................................101
Unified robot description file...............213
Unimate .................................................23
Universal Asynchronous Receiver
/Transmitter....................................190
Unmanned Aerial Vehicle . 5, 49, 107, 235,
236, 241
URDF ....................................................213
User......................................................149

V
Velocity Vector.......................................81
Vertex ....................................................76
Virtual
Robot Experimentation Platform ....142
V-REP .. 142, 143, 144, 145, 146, 147, 149,
150, 152, 164, 166

W
Windows ..............................................202

Wireless
connection........................................ 79
Routing Protocol............................. 102
sensor ............................................... 84
sensor network ................................. 84
transmission ................................... 144

X
X-Bee........................ 84, 87, 91, 92, 93, 95

Z
Zigbee ...................................... 84, 85, 242
Zone
-based Hierarchical Link State.........103
Resolution Procotol.........................103

246

8. Profil Penulis
Nama: Dr. Eng. Wisnu Jatmiko, S.T., M.Kom.
TTL: Surabaya, 16 Desember 1973
Pekerjaan: Dosen / Staf Akademis
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email: wisnuj@cs.ui.ac.id
Interest: Robotika, Embedded System
Quote: Tidak ada tanggal merah di kalender saya, 247
merupakan angka terbaik setiap minggunya

Nama: Dr. Petrus Mursanto


TTL: Surakarta, 25 Juni 1967
Pekerjaan: Dosen / Staf Akademis
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email: santo@cs.ui.ac.id
Interest: Hardware, Arsitektur Komputer, Enterprise
Computing

247

Nama: M Iqbal Tawakal, S. Kom.


TTL: Semarang, 1 Maret 1990
Pekerjaan: Teaching and Research Assistant
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email: mit.iqi@gmail.com
Interest: computational intelligence, digital signal
processing, computer vision, and robotics
Quote: Lebih baik mati berkalang tanah, daripada
hidup bercermin bangkai

Nama: M Sakti Alvissalim, S. Kom.


TTL: Brebes, 01 Oktober 1989
Pekerjaan: Asisten Riset
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email: alvissalim@cs.ui.ac.id
Interest: Robotics, Machine Learning
Quote: Everything's Learnable

248

Nama: Abdullah Hafidh, S. Kom.


TTL: Jakarta, 18 Agustus 1989
Pekerjaan: Asisten Dosen
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email: abdullah.hafidh@yahoo.com
Interest: Robotika, 3D Programming
Quote: "Play Hard, Work Hard, and Pray Hard"

Nama: Enrico Budianto, S. Kom.


TTL: Braunschweig, 3 Mei 1989
Pekerjaan: Mahasiswa
Institusi: Universitas Indonesia / National University of
Singapore
Email: enrico.budianto@gmail.com
Interest: Robotika, Networking
Quote: Impossible is nothing!

249

Nama: M Nanda Kurniawan, S. Kom.


TTL: Depok, 22 Februari 1989
Pekerjaan: Dosen / Staf Akademis
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email: m_nanda07@mail.com
Interest: Robotics, Machine Learning, Computer Vision,
Digital Signal Processing and Ubiquitous Computing
Quote: "When someone ask: what if you fail? I answer: I
just need to believe!"

Nama: Kharda Ahfa, S. Kom.


TTL: Banda Aceh, 23 Desember 1989
Pekerjaan: Asisten Riset
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email: ahfa05@yahoo.co.id
Interest: Artificial Intelligence, Augmented Reality
Quote: Things are only impossible until they are not

250

Nama: Ken Danniswara, S. Kom.


TTL: Jakarta, 29 Agustus 1989
Pekerjaan: Asisten Riset
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email: ken.dannis@gmail.com
Interest: Artificial Intelligence
Quote: no need to panic

Nama: M Anwar Masum


TTL: Nganjuk, 21 November 1990
Pekerjaan: Asisten Riset
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email: anwar.rejoso@gmail.com
Interest: Robotics, Embedded System, Machine Learning
Quote: Nothing is Impossible

251

Nama: Indra Hermawan, S. Kom.


TTL: Majalengka, 13 Maret 1987
Pekerjaan: Asisten Peneliti & Asisten Dosen
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email: indrah13@gmail.com
Interest: Robotics, Artificial Intelligence, and Embedded
Systems
Quote: Kadang masalah adalah sahabat terbaik, Mereka
buatmu jadi lebih kuat, dan buatmu menempatkan
Tuhan di sisimu yang paling dekat

Nama: Grafika Jati


TTL: Purworejo, 31 Oktober 1991
Pekerjaan : Asisten Riset
Institusi: Fakultas Ilmu Komputer, Universitas Indonesia
Email : grafika.jati@gmail.com
Interest: Robotics, Embedded System
Quote : two things define you. your patience when you
have nothing And your attitude when you have
everything

252

253