Robotika: Teori dan Aplikasi Perpustakaan Nasional: Katalog Dalam Terbitan ISBN: 978-979-1 978-979-1421-1 421-13-3 3-3 Cetakan Cetakan 1, Desemb Desember er 2012 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 Ma’sum Indra Hermawan Grafika Jati
Desain Sampul Muhamad Fajar
Hak Cipta Seluruh isi buku dan sampul merupakan hak cipta Fakultas Ilmu Komputer Universitas Indonesia
2
Kata Pengantar Puji syukur syukur kami kami panjatk panjatkan an ke hadirat hadirat Allah Allah SWT yang yang atas atas rahmat rahmat,, karu karuni nia, a, dan dan h hida idaya yah-N h-Nya ya penul penulis is ber berhas hasil il me meny nyele elesa saik ikan an buk buku u ini ini dengan judul “Robo ” . Buku uku ini be berrisi Roboti tika ka:: Teor Teorii dan dan Apli Aplika kasi si ”. penjelasan penjelasan mengenai mengenai aplikasi-aplik aplikasi-aplikasi asi robotika robotika di berbagai bidang bidang yang sangat dekat dan menyentuh serta berhubungan dengan kebutuhan manusia. manusia. Penjela Penjelasan san tersebu tersebutt antar antara a lain lain penggun penggunaan aan mobile robot untuk mengatasi lumpuhnya jaringan komunikasi di daerah bencana, penggunaan penggunaan robot untuk bermain bermain bola dan meniru meniru gerakan manusia, manusia, serta serta penggun penggunaan aan robot robot penjelaj penjelajah ah udara udara untuk untuk keper keperlua luan n penjejak penjejakan an objek objek dan juga juga pembe pembent ntuk ukan an forma formasi si kawa kawana nan. n. Ketig Ketiga a co cont ntoh oh ters terseb ebut ut adala dalah h ben entu tukk apli aplikkasi asi robo robott yang yang ak akan dije dijela lask skan an di dala dalam m buku buku ini. Semua Semua ini ini bertuju bertujuan an untuk untuk mem memberi berika kan n gambaran gambaran kepada kepada pembaca betapa betapa penting penting dan berharganya berharganya teknolog teknologii robotika robotika dalam kehidu kehidupan pan manusi manusia. a. Buku Buku ini juga juga juga buku buku ketiga ketiga dari dari seri buku buku roboti robotika ka yang yang diproduk diproduksi si di lab Architecture and High Performance Computing , Fakultas Ilmu Komput Komputer er Univer Universit sitas as Indones Indonesia. ia. Dua buku buku sebelum sebelumnya nya adala adalah h “Swarm Robot dalam Pencarian Sumber Asap ” dan “Robot Lego ”. Dihara Diharapka pkan n buku buku ketiga ketiga ini dapat dapat Mindstorm: Teori dan Praktek ”. melanju mel anjutka tkan n semanga semangatt yang diusung diusung dari dari ke kedua dua buku buku sebelumny sebelumnya a 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 memberikan gambaran gambaran terbaru terbaru mengenai mengenai teknologi teknologi robotik robotika a 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.
3
Penulisan Penulisan buku ini sendiri sendiri didukung didukung oleh program program Hibah Sinas tahun 20122012-20 2014 14 (Kem (Kemen enter teria ian n Ris Riset et dan dan T Tek eknol nolog ogii RI) RI) de denga ngan n jud judul ul “ Autonomous Autonomous
Quadcopter Quadcopter
Swarm
Robots
for
Military
Reconnaissance Reconnaissance and Intelligence Gathering ”, program Student Project
IMHERE Fasilkom UI 2012 (Kementerian Pendidikan dan Kebudayaan Imitasi Gerak Gerak Manusia Manusia pada pada Robot Robot Humanoi Humanoid d RI) RI) de deng ngan an judu judull “Imitasi Pemain Bola ”, dan Hibah Riset Kolaboras Kolaborasii Internasional Internasional UI tahun 2011 Autonomous Telecommunication Telecommunication Networks Coverage dengan judul “ Autonomous Area Expansion Expansion With Mobile Mobile Robot In Disaster Areas Areas ”. Tanpa bantuan
dana dari hibah-hibah tersebut, tersebut, penelitian penelitian pendahuluan pendahuluan dan penulisan penulisan buku ini tidak mungkin mungkin bisa diselesaikan. diselesaikan. Atas bantuan bantuan dana tersebut, tersebut, penulis mengucapkan terima kasih yang sebesar-besarnya. Teri Te rima ma kasi kasih h kami kami samp sampai aika kan n juga juga ke kepad pada a semu semua a pihak pihak yang yang telah telah member mem berika ikan n dukungan dukungan selama selama pemb pembuat uatan an buku buku ini, ini, teru terutam tama a dari dari pihak Kementrian Kementrian Pendidikan Pendidikan dan Kebuday Kebudayaan, aan, Kementrian Kementrian Riset Riset dan Teknologi, Teknologi, dan Fakultas Fakultas Ilmu Ilmu Komputer Komputer UI. Selain Selain itu, tidak lupa lupa pula pula kepada seluruh mahasiswa di Laboratorium Computer Networks, Architecture & High Performance Computing yang telah banyak
membantu membantu secara secara formal maupun maupun informal informal sehingga sehingga riset riset ini dapat berjalan dengan segala kelebihan dan kekurangannya. Tak ada ada gading gading yang yang tak retak retak.. Penulis Penulis juga juga menya menyadar darii bahwa bahwa buku buku yang ditulis ini ini masih memilik memilikii kekurangan kekurangan di sana sini. sini. Oleh karena itu, kritik kritikan an dan dan masuka masukan n dari pembaca pembaca sangat sangat diharap diharapkan kan untuk untuk pengembangan pengembangan kualitas kualitas dari buku ini dan buku-buku buku-buku selanjutnya. selanjutnya. Semoga bantuan bantuan dan kerja sama ini dapat memberi memberi kontrib kontribusi usi perkembangan yang berarti bagi keilmuan khususnya di bidang ilmu kompute komputerr dan robotik robotika a di Indonesi Indonesia. a. Depok, Universitas Indonesia Desember 2012
Tim Penulis 4
Sistematika Penulisan Buku Buku ini ditulis dengan urutan sebagai berikut:
Bab 1, Apa Itu Robot? Bab Bab ini ini me menj njel elas aska kan n menge mengena naii tekn teknol olog ogii robo robott dan meng mengap apa a robot dapat membantu manusia dalam kehidupan sehari-hari. Di dalamnya dalamnya juga dibahas dibahas jenis-jenis jenis-jenis robot, robot, dan penelitianpenelitianpenelitian terkini tentang aplikasi robotika.
Bab 2, Penerapan Penerapan Robot Beroda Bab ini ini
me menjel njelas askkan pe peng ngg gunaa unaan n
rob robot ot be berroda oda
untuk ntuk
mengatasi masalah terputusnya komunikasi ketika terjadi bencana alam pada suatu daerah. Di dalamnya akan dibahas tiga pendekatan yang digunakan, yaitu penggunaan simulasi 3D, imple implemen mentasi tasi denga dengan n riil robot robot gempa gempa bumi, bumi, dan metode metode routing protocol untuk pemulihan jaringan telekomunikasi.
Bab 3, Pene Penera rapa pan n Robo Robott UAV UAV Bab ini menjelaskan mengenai robot dalam bentuk helikopter yang memiliki 4 buah rotor dan memiliki kemampuan untuk berrmanu be manuve verr
di
udara dara..
memulihkan
jaringan
Robo Robott
ini ini
telekomunikasi,
dipe diperg rgun unak akan an pendeteksian
untu untukk dan
pelacakan topi, dan diujikan untuk membentuk formasi robot untuk penjelajahan ruang.
Bab 4, Penerap Penerapan an Robot Robot Berk Berkaki aki Bab Bab ini me menj njela elask skan an menge mengenai nai robo robott berka berkaki ki yang yang dira diranca ncang ng berbentuk humanoid . Di dalamnya dalamnya juga juga dijelaskan dijelaskan sisi aplikasi aplikasi robot humanoid untuk pertandingan robot soccer dan mengimitasi gerak manusia dari tangkapan sensor Kinect.
5
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.
6
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 2.3
TraxterII Brush DC Gearhead Motor (plus Encoder ) ...............56
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
8
3.1.3 Kemampuan Quadcopter......................................................114 3.1.4 3.2
AR.Drone ...............................................................................115
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
9
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 m otor dan encoder robot 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) 90 0, 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 menentukan kemajuan kemajuan peradaban peradaban di dunia. Teknologi Teknologi robotika robotika dapat meningkatkan produktivitas suatu pekerjaan. Dengan adanya robo robotik tika, a, peker pekerjaa jaan n yang yang sebel sebelum umny nya a suli sulitt dan berbah berbahay aya a untuk untuk dikerj dikerjaka akan n sekara sekarang ng sudah sudah dapat dikerj dikerjaka akan n leb lebih ih mudah mudah dan aman. aman. Misalnya, Misalnya, melakukan melakukan eksplorasi eksplorasi jauh ke d dalam alam perut bumi, ke dalam lautan, lautan, eksplor eksplorasi asi ruang ruang angk angkasa asa dan lain lain sebagai sebagainya. nya. Dengan Dengan kondis kondisii seperti seperti itu, tidak heran heran jika perkembang perkembangan an robotika robotika berjalan berjalan dengan cukup pesat dari masa ke masa. Perkembangan robotika terjadi di hampir setiap sektor kehidupan, seperti sektor militer, manufaktur, industri, industri, kesehatan kesehatan dan sektor sektor kehidupan lainnya. lainnya. Perkem Perkemban bangan gan terseb tersebut ut terliha terlihatt di negara-n negara-negar egara a di mana mana robot robot sudah sudah menj me njad adii bag bagia ian n dari dari seti setiap ap pe peke kerj rjaa aan n yan yang g mer merek eka a lak lakuk ukan an.. Berdasarkan Berdasarkan data yang dikumpulkan dikumpulkan oleh International Federation of Robotics, negara yang paling maju teknologi otomatisasinya adalah
Jepang, Republik Korea, dan Jerman. Diketahui bahwa kepadatan robot pada pada industri industri di ketiga ketiga negara negara tersebut tersebut berturut-turu berturut-turutt untuk setiap setiap 10.000 10.000 jumla jumlah h pekerja pekerja adalah adalah 306, 306, 287, dan dan 253 buah buah robot. robot. Jumlah robot juga bertambah seiring bertambahnya kebutuhan dalam penggu pengguna naann annya ya..
Cont Co ntohn ohnya ya
indu industr strii
otom otomoti otiff
di
Jepa Jepang ng
membutu mem butuhka hkan n 1.436 1.436 unit unit robot robot per 10.000 10.000 peke pekerja rja.. Kebutu Kebutuhan han jumlah jumlah robot robot yang tinggi tinggi tersebu tersebutt mem membua buatt industr industrii robot robot menjadi industri industri yang berkemban berkembang g dengan sangat baik. Data yang ada menunjuk menunjukan an bahwa bahwa robot robot pelayan pelayan (robot (robot untuk untuk pekerj pekerjaan aan terten tertentu) tu) untuk melayani melayani manusia terjual terjual cukup banyak. banyak. Robot yang digunakan digunakan 17
untuk untuk pekerj pekerjaan aan profe profesio sional nal terjua terjuall hingga hingga 13.741 13.741 unit unit di tahun tahun 2010. Robot yang paling banyak terjual di pekerjaan profesional tersebut adalah adalah robot robot untuk untuk keperl keperluan uan mil milite iter, r, teruta terutama ma kendar kendaraan aan udara udara tanpa awak (unmanned aerial vehicle ) dan robot robot pe penga ngamb mbil il susu 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 untuk ke keper perlu luan an hibu hibura ran. n. Oleh Oleh kare karena na itu, itu, tekn teknolo ologi gi robot robot selal selalu u dibutuhkan dibutuhkan dan dan dikembangkan. dikembangkan. Karena Karena itu pula, penelitian penelitian yang yang dilakukan dilakukan dibidang dibidang robotik robotika a semakin semakin banyak, banyak, sehingga sehingga ilmu ilmu ini terus berkembang berkembang dengan pesat.
1.1 Definisi Robot Mendefinisika Mendefinisikan n robotika robotika secara secara jelas merupakan merupakan hal yang yang sulit. Bahkan seorang seorang Joseph Joseph Engelbe Engelberge rger, r, yang dijulu dijuluki ki sebaga sebagaii “bapak “bapak robotik robotika” a” karena jasanya mengembangkan robot industri yang pertama di Amerika Serikat, pernah mengatakan “saya tidak dapat mendefinisikan robot, tapi saya saya tahu ketika ketika saya melihatnya”. melihatnya”. Hal Hal ini terjadi karena karena robot merupakan merupakan hal yang kompleks kompleks dan sulit dideskripsik dideskripsikan an dengan 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 perala peralatan tan yang yang bekerj bekerja a secara secara otomatis. otomatis. Robo Robott biasany biasanya a diprogr diprogram am untuk untuk melak melakuk ukan an pek peker erja jaan an berula berulang ng kali kali dan dan memil memilik ikii me meka kani nism sme e yang yang dipan dipandu du oleh oleh kontr kontrol ol otom otomati atis. s. Sed Sedan angk gkan an robo robotik tika a adala adalah h cabang teknologi teknologi yang berkaitan berkaitan dengan desain, desain, konstruksi, konstruksi, operasi, dan
aplikasi
dari
robot.
Robotika
merupakan
cabang
ilmu
penge pengetah tahuan uan yang yang me memp mpel elaj ajar arii tentan tentang g robot. robot. Caban Cabang g ilmu ilmu ters terseb ebut ut menc me ncak akup up
des desai ain n
mesi mesin n
robot robot,,
elek elektr tron onik ika, a,
peng pengon ontr trol olan, an,
pemrograman komputer, kecerdasan buatan, dan lain sebagainya. Terdap Terdapat at pendapa pendapatt lain menge mengenai nai def defini inisi si robot, robot, seper seperti ti diutara diutarakan kan oleh Robotic Institute of America sebuah sebuah instit institusi usi robot robot yang yang terdapa terdapatt 18
di Universitas Universitas Carnegie Carnegie Mellon di kota kota Pittsburgh, Pittsburgh, negara bagian Pensilvania, Pensilvania, Amerika Amerika Serikat, pada tahun 1979 mendefinisik mendefinisikan an secara formal yang dimaksud dengan robot adalah "manipulator multi fungsi dan dapat dapat diprogra diprogram m ulang ulang yang yang dirancang dirancang untuk menggerakkan menggerakkan material, alat, atau perangkat khusus melalui sejumlah gerakan terprogram untuk melakukan aktifitas tertentu". Meskip Meskipun un terdapat terdapat berbaga berbagaii definisi definisi robot, robot, seperti seperti telah telah disebutk disebutkan an sebel sebelum umny nya, a, tidak tidak ditem ditemuk ukan an de defi finis nisii stan standa darr yang yang menje menjela lask skan an sebu sebuah ah robo robot. t. Namu Namun n de demi miki kian an,, terd terdap apat at em empa patt kara karakt kter eris isti tikk d das asar ar yang harus harus dimiliki dimiliki ol oleh eh setiap setiap robot robot modern. modern. Karakteri Karakteristik stik dasar dasar tersebut tersebut adalah sebagai sebagai berikut. berikut. emilik ikii se sens nso or. Se 1. Memil Sens nsor or me meru rupa paka kan n pera perala lata tan n yang yang ber bergu guna na
untuk mengukur ataupun merasakan sesuatu pada lingkungan di luar robot, layaknya indera pada makhluk hidup, dan memberi laporan laporan hasilnya kepada kepada robot. Dengan Dengan adanya sensor, robot robot bisa memiliki suatu pertimbangan dalam mengambil keputusan. Conto ontoh h dar dari sen enssor adalah senso nsor caha cahayya untuk tuk men mende dete tekksi adanya cahaya cahaya dan dan sensor sensor temperatur temperatur untuk mengukur mengukur suhu. suhu. 2. Memiliki sistem kecerdasan (Kontrol) . Sistem kecerdasan bekerja denga dengan n mem mempr pros oses es data data masu masuka kan n ber berup upa a kea keadaa daan n ata ataup upun un kejadian kejadian yang sedang sedang terjadi terjadi dari luar lingkun lingkungan. gan. Selanjutnya Selanjutnya sistem sistem
menghas menghasilk ilkan an
keluar kel uaran an
berupa berupa
instruk instruksi si
ataupun ataupun
keputusan pada robot untuk melakukan suatu tindakan tertentu. Sistem ini secara secara umum memiliki memiliki prinsip prinsip kerja kerja seperti seperti otak otak pada pada makhluk makhluk hidup, yang yang berfungsi berfungsi untuk berpikir berpikir dan memutuskan memutuskan tindakan apa yang perlu diambil pada suatu waktu tertentu. 3. Memili Peralat alatan an me mekkanik anik Memiliki ki pera peralat latan an mek mekani anik k (Aktua (Aktuator tor)) . Per 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 kehidu kehidupan pan yang yang mem membutu butuhka hkan n makan makanan an untuk untuk hidup, hidup, robot robot juga memerlukan sumber tenaga untuk menggerakkan komponen elektr ele ktrik ik dan meka mekanik nika a yang yang terpa terpasang sang.. Sumber Sumber ene energi rgi pada robot robot 19
mencak mencakup up penyed penyedia ia tenaga tenaga listri listrikk seper seperti ti baterai, baterai, dan sistem sistem pengatur transmisi yang bertugas mengonversi tenaga listrik sesuai kebutuhan setiap komponen.
Gambarr 1.1. Karakter Gamba Karakteristik istik Robot Robot
Kita bisa lebih mudah menentukan apakah suatu benda merupakan robot atau bukan dengan mengetahui karakteristik dasar dari benda ters erseb ebut ut..
Selain ain
it itu
kee keem mpat parameter ters erseb ebu ut
merupak upaka an
pertimbangan pertimbangan utama dalam merancang merancang robot. Pada robot modern, aktuator sering kali dikaitkan dengan ilmu mekanika. mekanika. Dalam mekanika, mekanika, dipelajari dipelajari hal-hal mengenai mengenai berbagai berbagai macam gaya yang terjadi akibat susunan konstruksi, letak pusat gravitasi, gravitasi, dan sifat sifat material. material. Dengan memper mempertimbang timbangkan kan sifat-sifat sifat-sifat mekanika, mekanika, robot akan akan bergerak dengan dengan stabil dan mengurangi mengurangi resiko resiko terjatuh. Sens Se nsor or pada pada rob robot ot mode modern rn seri sering ngka kali li b ber erka kait itan an den denga gan n ilmu ilmu elektronika. elektronika. Dalam ilmu elektronika elektronika dipelajari dipelajari hal-hal yang berkaitan berkaitan dengan komponen elektronik, sirkuit analog, sirkuit digital, dan juga Sebuah uah sens sensor or dapa dapatt tersu tersusun sun dar darii rangk rangkai aian an anal analog og microcontroller . Seb atau atau rangk rangkaia aian n digit digital. al. Bers Bersam amaan aan de deng ngan an me meni ningk ngkatn atnya ya tekn teknolo ologi gi kompute komputerr dan ele elektr ktroni onika ka maka maka meningkat meningkat pula pula pengemban pengembangan gan sensor sensor yang yang dapat dapat dif difabr abrika ikasik sikan an dengan ukuran ukuran mini. mini. Sistem kecerdasan pada robot modern dikembangkan pada sebuah piranti piranti lunak. lunak. Kecerdasan Kecerdasan buatan dapat dirancang dirancang mengguna menggunakan kan 20
algorit algoritma ma yang memun memungki gkinka nkan n robot berger bergerak ak secara secara otomati otomatis, s, dengan mempertimb mempertimbangkan angkan informasi informasi sekitar sekitar yang dibaca dari sensor yang yang ada. ada. Se Sela lain in itu itu ter terdap dapat at layer keterhubungan antara sistem kecerd kec erdasan asan denga dengan n sensor sensor dan aktuat aktuator. or. Dengan Dengan demik demikian, ian, data dapat dapat ditrans ditransfer fer antar antar kompo komponen nen yang yang dikelol dikelola a oleh perangk perangkat at keras keras menggun menggunaka akan n piranti piranti lunak lunak yang yang dibuat. dibuat.
1.2 Sej Sejara arah h Per Perkem kemba banga ngan n Rob Roboti otika ka Sejarah perkembangan robot dipisahkan dalam dua fase, yaitu robot klasik dan robot modern. Robot klasik merupakan sebuah sistem mekanika/auto mekanika/automata mata yang dapat dapat melakukan melakukan suatu aktivitas aktivitas tertentu tertentu dengan tugas yang telah ditentukan, na namun be belum me memiliki perle perlengk ngkapa apan n sens sensor or yang yang mem memung ungki kink nkan an rob robot ot untu untukk berg berger erak ak otomatis. Sedangkan perkembangan robot modern dimulai sejak diperkenalkannya teknologi elektronika. Pada fase robot klasik, ide penciptaan automata sudah muncul sejak 3 abad sebelum sebelum masehi, masehi, dengan ditemuk ditemukannya annya literatur literatur di Cina yang 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 repl replik ika a orga organ n dalam dalam tubu tubuh. h. Mesk Meskipu ipun n ke kebe bena nara ran n dari dari cer cerita ita ini diragukan, diragukan, ide penciptaan penciptaan automata benar adanya. adanya. Automata Automata pertama pertama ditemukan oleh Heron dari Alexandria sejak 150 tahun sebelum masehi. Heron menciptkan kendali otomatis kendaraan. Automata ini dapat diprogram diprogram untuk bergerak bergerak dengan pola yang ditentukan. ditentukan. Kata robot sendiri sendiri baru dikenal dikenal pada tahun 1921. 1921. Robot berasal berasal dari bahasa Ceko, robota, yang berarti pekerja yang seperti budak. Katakata itu itu dipakai dipakai oleh oleh Karel Karel Capek Capek dalam dalam acara acara pementasan pementasan yang yang bernama Rossum’s Universal Robots (R.U.R) di London. Meskipun begitu, jauh sebelum waktu tersebut sudah ada robot yang diciptakan berdasarkan prinsip-prinsip robot modern. Automata Automata pertama yang dapat dapat diprogram diprogram sudah ada sejak abad ke 12 masehi, yaitu sebuah mekanika band musik buatan ilmuan ilmuan asal asal Jazirah Jazirah 21
Arab, Al-Jazari. Al-Jazari membuat mekanika band yang digunakan untuk menghibur tamu kerajaan terse ut pada tahun 1206. Mekanika band itu diletakkan diatas sebuah perahu terapung dan terdiri dari
empat buah robot yang mana dua dia taranya 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 da at berdiri, duduk, mengangkat helm, serta melakukan manuver d ngan tangannya. Desain itu kemudian pernah dibuat menjadi nyat 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 ke erdasan buatan dimulai pada tahun 1898. Nikola Tesla yang kemu ian dinobatkan sebagai bapak robotika, memperkenalkan robot per hu yang berlayar pada kolam kecil dan dikendalikan jarak jauh m nggunakan 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
mengembangkan dan memproduksinya secara massal.
23
yang
mampu
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 o mni 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
(c) bola
Gambar 1.8. Jenis-jenis Roda
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
ifferential 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 dikon igurasikan parallel, robot yang dikonfigurasikan seri memiliki k tidaksetimbangan statis dalam mekanisme diam.
Gambar 1.10. Konfigurasi Ro a Dua, Atas (parallel) Bawah (seri) b. Robot Beroda Tiga
Robot beroda tiga sesuai untuk pemula karena tidak memerlukan algoritma khusu untuk menstabilkan robot. Penempatan posisi roda diatur sedemikian rupa membentuk 32
segitiga. Terdapat
ua 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 pen gerak terpisah dan roda depan yang bebas berputar mengikuti arah gerakan robot. Pusat massa pada konfigurasi roda tig terletak pada titik pusat segitiga, sehingga beban total sebaik ya tidak diletakkan terlalu dekat dengan roda depan.
(a) Power Steering
(b) Differential Steering
Gambar 1.11. Ko figurasi Sistem Kemudi Beroda Tiga
Selain sistem kemu i yang telah dijelaskan, perancang robot bebas dalam merancang konfigurasi lainnya. Misalnya dengan menghubungkan m tor ke roda depan atau membuat kedua roda belakang berp tar bebas. c.
Robot Beroda Empat
Dengan penambahan sebuah roda di bagian depan, stabilitas robot bertambah. Meskipun demikian, perlu diperhatikan ketika
jumlah
k ntak
dengan
tanah
melebihi
tiga,
kesetimbangan hyperstatic sebagai akibat bentuk geometri memerlukan sema am 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 diranc ng sedikit lebih besar dari robot beroda tiga.
33
Sejumlah alternatif sistem kemudi pada robot beroda empat diantaranya: dua roda belakan yang memiliki motor terpisah dan dua roda depan yang d pat berputar ke segala arah (Gambar 1.12 a.), sebuah pasa gan sisi roda depan-belakang dihubungkan ke motor pengger k yang sama dan pasangan sisi roda lainnya dihubungkan k motor penggerak terpisah (Gambar 1.12 b.), dan konfigur si 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 membutuhk n effort yang besar. Dead reckoning yaitu kemampuan r bot untuk menghitung posisi
saat ini relatif terhadap posisi s belumnya.
a.
b.
Gambar 1.12. Konfigurasi Siste
c. 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 berger k pada medan tersebut, dapat diatasi dengan menggunakan
ekanika rantai tank, selain itu
rantai tank dapat melintasi h langan 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 stee ing dan disebut sebagai skid steering. Kemudi diatur dengan menciptakan selisih kecepatan 34
putar rantai antara kedua sisi rantai. Kelemahan dari sistem roda adalah mem utuhkan kerja yang lebih besar untuk berbelok, sebandi g 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 tamba an antara roda dalam dan rantai yang terpasang.
Gambar 1.13. Sis tem suspensi rantai pada tank. (1= roda belakang bermoto r, 2=rantai yang membalut roda, 3=roller untuk memudahka rantai berputar, 4= roda depan bermotor, 5=roda netral, 6=idler)
Gambar 1.13 men njukkan konfigurasi rantai ideal untuk
melintasi berbagai ondisi alam. Konfigurasi rantai ini sesuai untuk robot yang ditujukan untuk itu seperti tank robot tanpa awak pada medan perang.
Gambar 1.14. Teletank, t nk tanpa awak yang dikontrol dari jauh. Aktif dipergunakan oleh U ni Sovyet pada masa perang dunia kedua.
Pada buku ini dibahas sebuah aplikasi robot beroda jenis tank yang
diperguna an
untuk
memulihkan
jaringan
telekomunikasi. Ro ot tersebut diberi nama Al-Fath. Roda pada robot tersebut dilengkapi dengan rantai-roda untuk melewati
35
daerah
jelajah
yang
sulit
akibat
rusaknya
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
0
10 .
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 p ada 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
diklasifikasikan sebagai berikut.
39
dapat
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
demikian
memperhatikan
robot
penjelajah
desain
aerodinamik.
udara
memiliki
Namun
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 su bab 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. Pe ggunaan 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 Lo alization (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 -F th dan sensor -sensor nya
2.2.1 Anatomi Chassis atau badan dari Al-Fath te diri 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 b ah 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. SRF08 dipasang di Al-Fath
2.2.3 CMPS03 CMPS03 Magnetic Compas adalah kompas digital buatan Devantech
Ltd. Kompas digital yang memiliki harga terjangkau ini digunakan untuk membantu sistem n vigasi agar berfungsi dengan baik, efektif, serta mudah digunakan.
Gambar 2.5 CMPS 03 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 me jadi 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 reckonin g. Teknik dead reckoning akan dijelaskan lebih lanjut di bab implemen asi.
Gambar 2.6 Motor pada robot Al-Fath
2.3 Simulasi Pembentukan Jaringan Komunikasi Menggunakan Open Dynam c 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 erat, momentum, gravitasi, dan lain sebagainya menjadi salah satu pili an tepat untuk dapat mendekati keadaan sebenarnya. Penggunaan 3D i i diharapkan dapat memberikan hasil yang tidak terlalu berbeda ketika diimplementasikan terhadap robot sebenarnya. Seluruh proses simulasi dibangun menggunakan sebuah library Open Dynamic Engine(O DE). Pemilihan library ini didasari oleh banyaknya fitur-fitur yang disediakan oleh ODE sehingga memudahkan dalam proses simulasi. enjelasan lebih lanjut mengenai ODE terdapat pada subbab 2.4.1. T rdapat 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
Pergerakan Motor
Pergerakan Motor
Depan Bagian Kanan
Depan Bagian Kiri
Bergerak Ke Kiri
Depan
Belakang
Bergerak Ke Kanan
Belakang
Depan
Bergerak Ke Depan
Depan
Depan
Bergerak Ke Belakang
Belakang
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 ; . . . ; p n). 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. merupakan jumlah robot minimal yang dibutuhkan. min
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 +
(1 +
)
+ )− ) = ) + (( + ) − 2( + ) + ) + (( −2 + ) − 2( )+ ( −2 + ) −2
+ (−2 + 2
−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
−4
)
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 Line pada 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 best individu 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, 2 010)
2.4.4
Implementasi Arsitektur Mobil Robot
Autonomous mobile robot yang dikembangkan akan berkoordinasi
satu sama lain untuk mencapai tujuan ya. Oleh sebab itu, diperlukan komponen-komponen penunjang fung i koordinasi tersebut. Gambar 2.36. menunjukkan gambar arsitektur sistem secara umum.
Gambar 2.36. Arsitektur si tem secara umum
86
Seperti terlihat pada gamb r tersebut, terdapat sebuah program yang digunakan untuk memonit r pergerakan robot yang berjalan di atas sebuah PC. Program ters but 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 t rhubung ke sebuah modul X-Bee Wireless.
Modul X-Bee yang terhub ng ke PC tersebut berfungsi sebagai BTS (Base Transceiver Station ) yang mengirimkan paket-paket periodik secara broadcast . Paket ya g dikirimkan BTS berisi identifier dan posisi BTS tersebut. Dalam pa et yang sama juga terdapat informasi mengenai identifier dan p sisi BTS yang ingin disambungkan dengan BTS tersebut. Hal ini diperlukan agar robot-robot mengetahui posisi BTS-BTS yang ingin dihub ngkan. Ilustrasi sistem komunikasi antar robot dan antara robot den an BTS digambarkan oleh gambar 2.37.
Gambar 2.37. Sist em 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. De gan 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 robot-
robot 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 penghit ng perputaran roda, yang juga disebut encoder . Sensor ini mengubah perputaran roda menjadi pulsa listrik yang kemudian dijadikan mas kan 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 di unakan dari berbagai macam sudut beserta spesifikasi teknis encode yang tergabung dengan motor tersebut.
Gambar 2.39. Spesifikasi m otor dan e coder r obot Al-Fath (Dewanto 2010)
Pada saat pertama kali dijalankan, di sumsikan bahwa robot sudah mengetahui posisi dirinya sendiri, da a posisi tersebut disimpan di dalam EEPROM. Perhitungan pergera an akan dimulai ketika robot mulai bergerak. Posisi robot sendiri
irepresentasikan dalam suatu
grid yang setara dengan 10 cm seda gkan untuk posisi arah robot
direpresentasikan dalam satuan kelipatan 45 derajat sehingga didapatkan 360/45 = 8 arah hadap r bot seperti yang terlihat pada Gambar 2.40.
90
Gambar 2.40. R presentasi arah terhadap robot
2.4.5.3. Sistem Navigasi
Pergerakan yang dilakukan robot adalah melakukan navigasi point-to point , pergerakan ini mem ngkinkan robot untuk bergerak dari suatu
koordinat tertentu saat ini menuju koordinat tujuan. Pergerakan ini dibagi menjadi dua taha an, 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 ta u posisi yang telah ditempatinya ke robotrobot yang lain melalui erangkat 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 akhi 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 ilakukan dengan mengukur nilai RSSi pada
jarak 0 hingga 3 mete
dengan interval sebesar 0.6 meter.
Pengukuran dilakukan den an 4 variasi orientasi dengan 4 arah mata angin dan untuk setiap ara dilakukan sampling 10 kali. Gambar 2.42 merupakan grafik hasil pe gujiannya, terlihat bahwa terdapat kaitan yang hampir linear antara kedua variabel tersebut. Kaitan tersebut bisa dimanfaatkan untuk
enentukan batas ambang kekuatan sinyal
untuk komunikasi efektif.
Gambar 2.42. Kaita n 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. Pemb tasan 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 keber asilan penemuan BTS. Pada penjelasan sebelumnya telah diketahui bahwa nilai RSSI berkaitan langsung dengan jarak antar nod X-Bee.
Gambar 2.43. Pergerak n pembaharuan nilai dan posisi Local Best
Setiap robot mempuny i 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 a a di sektira BTS. Pada penelitian ini diasumsikan hanya sal h satu BTS yang melakukan pengiriman paket secara broadcas . Informasi local best pada setiap robot akan dibagikan ke rob t-robot lain sehingga setiap robot dapat mendapatkan informasi local best dari semua robot yang lain melalui modul X-Bee. etiap robot kemudian akan menentukan global best , yang mer pakan nilai local best dari semua robot
termasuk dirinya sendiri yang paling minimum. Tujuan utama algoritma sinklocalizati on menggunakan PSO ini adalah untuk
95
menemukan area di sekitar BTS y ng memungkinkan komunikasi efektif berjalan. 2.4.7
Implementasi Algoritma Positi n by Line Pada Robot Al-Fath
Tahapan selanjutnya adalah mengimpl mentasikan 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 ang ingin dihubungkan secara wireless. Dalam mengimplementasika
algoritma ini perlu dilakukan
beberapa tahapan. Tahapan pertama adalah penentuan posisi-posisi target atau feasible position. Gam ar 2.44. merupakan gambar ilustrasi dari feasible position .
Gambar 2.44. Feasible position dala
algoritma Position by Line
Pada tahapan kedua dilakukan pergerakan menuju target. Langkah ini dilakukan untuk mencapai titik f asible position yang sudah ditentukan pada tahapan pertama. Ro ot melakukan navigasi keposisi paling dekat dengan robot. Pengukuran posisi paling dekat dilakukan dengan menghitung Euclidean distan e antara posisi robot dengan setiap feasible position s. Pada saat be navigasi robot juga melakukan pengecekan apakah posisi yang dituju udah ditempati oleh robot lain atau belum, jika sudah maka robot a an berhenti dan menuju pada titik feasible position yang lain. 2.4.8
Hasil Implementasi
Pada
bagian
selanjutnya
akan
pengembangan sistem Autonomous
dibahas
hasil
pengujian
dan
obile Robot (AMR). Pengujian
sistem AMR dilakukan pada sebuah ruangan berukuran ± 10 x 10 meter. Pada ruangan tersebut hanya t rdapat beberapa robot Al-Fath 96
dan dua buah kotak yang dianalogikan sebagai BTS. Gambar 2.45. dapat mendeskripsikan me genai area pengujian.
Gambar 2.4 . Pengaturan Area Uji Coba
Dari
hasil
pengujian
dapat
di
simpulkan
bahwa
algoritma
sinklocalization dan Positio by Line telah berhasil diimplementasikan
dan diujicobakan. Nampak ada 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 pergera kan robot pada uji coba
Pada Gambar 2.46. menunjukan hasil engujian, tampak pada gambar (a) kondisi awal robot yang diletakan secara acak. Pada gambar (b) dan (c)
tampak
robot
sedang
mencari posisi
menyambungkan dua buah BTS da
yang tepat
untuk
gambar (d) robot berhasil
membentuk formasi garis lurus sejajar engan BTS. Pada proses pengujian terdapat beberapa kendala yaitu pergerakan robot yang tidak presisi, penggunaan sensor jarang yang jumlahnya terbatas sehingga memungkinkan t rjadinya tabrakan pada saat pengujian seperti yang terlihat pada ga bar 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
memungkinkan host
dalam
protocol protokol
routing
yang
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 advertisement ).
mencegah
dari node lain ( periodic
Keuntungan dari algoritma ini diantaranya
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
Rentang berat
Contoh UAV
>2000 kg
Global Hawk
Heavy
200 – 2000 kg
A-160
Medium
50 – 200 kg
Cypher
Light
5-50 kg
Neptune
Micro
<5 kg
Dragon Eye
Super Heavy
108
Salah satu jenis UAV yang termasuk kedalam kategori micro dan cukup banyak digunakan adalah quadcopter . UAV jenis ini memiliki ciri khusus yang mudah dikenali yaitu memiliki empat buah baling-baling motor
yang
digunakan
sebagai
penggeraknya.
Gambar
3.1
menunjukkan salah satu contoh dari quadcopter .
Gambar 3.1. Quadcopter
Pada gambar tersebut nampak sebuah quadcopter dengan empat buah baling-baling yang terpasang di bagian kiri dan kanan. Dengan empat buah baling-baling tersebut memudahkan quadcopter untuk bermanuver sehingga dengan cepat dapat bergerak kesegala arah. Hal ini menjadi salah satu kelebihan dari quadcopter . Selain empat buah baling-baling, quadcopter juga dilengkapi dengan sensor diantaranya sensor Global Positioning System (GPS) yang digunakan untuk bernavigasi, sensor Inertial Measurement Unit (IMU) yang berfungsi untuk menghitung percepatan serta orientasi arah pergerakan, sensor ultra sonic untuk mendeteksi keberadaan benda dan sensor-sensor lainnya yang mendukung fungsi dan kinerja dari quadcopter . Penjelasan lebih lanjut mengenai quadcopter , mulai dari komponen pembentuk, prinsip kerja dan kemampuannya akan dijelaskan pada subbab 3.1. Dengan manuverabilitas yang tinggi, rancangan yang sederhana dan kelengkapan sensor yang digunakan, membuat banyak peneliti menjadikan quadcopter
sebagai
komponen
utama
dalam
penelitiannya. Beberapa penelitian yang dilakukan tim peneliti dari Fakultas
Ilmu
Komputer,
Universitas
Indonesia,
menggunakan
quadcopter untuk memulihkan jaringan komunikasi, dimana pada
penelitian tersebut digunakan beberapa buah quadcopter yang 109
digunakan
untuk
pemulihan
jaringan
komunikasi.
Penjelasan
mengenai bagaimana hal tersebut dapat dilakukan dan bagaimana cara melakukannya terdapat pada subbab 3. Selain sebagai pemulih jaringan komunikasi masih terdapat penelitian lain yang dilakukan tim peneliti dari Fasilkom, diantaranya pendeteksian dan pelacakan objek dengan menggunakan sensor kamera dan pembentukan formasi untuk mengekplorasi ruangan pada suatu bangunan. Penjelasan mengenai kedua aplikasi tersebut terdapat pada subbab 3.3 dan 3.4.
3.1 Desain Robot Quadcopter Telah dijelaskan sebelumnya bahwa quadcopter merupakan salah satu jenis UAV yang cukup banyak digunakan. Berikut ini akan dijelaskan hal-hal yang berkaitan dengan quadcopter diantaranya komponen pembentuk, prinsip kerja, kemampuannya, dan salah satu jenis quadcopter yaitu AR.Drone. 3.1.1 Komponen Pembentuk Quadcopter Secara umum sebuah quadcopter terdiri dari komponen piranti keras
dan piranti lunak. Pada komponen piranti keras, terdiri dari sistem mekanik dan elektronik. Pada sistem elektronik, quadcopter dibentuk oleh beberapa rangkaian elektronik, seperti sensor, motor driver dan microcontroller. Komponen-komponen tersebut diletakan di bagian tengah membentuk lingkaran atau kotak, serta empat baling-baling di sekitarnya pada posisi yang bersilangan. Struktur penyusun persilangan tersebut cukup tipis dan ringan, tetapi juga cukup kuat untuk menghubungkan struktur keempat motor baling-baling. Setiap baling-baling terhubung ke motor melalui reduction gear (roda gigi yang mengurangi kecepatan putaran masukan pada keluarannya). Sumbu rotasi setiap baling-balingnya selalu tetap dan paralel. Hal ini menunjukkan bahwa struktur ini cukup kaku, dimana hanya kecepatan baling-baling yang bisa divariasikan. Kecepatan baling-baling ini berperan penting terhadap pergerakan dari quadcopter. Pergerakan
sebuah quadcopter bergantung
kepada
informasi-
informasi mengenai lingkungannya yang diperoleh melalui sensor. Untuk mengetahui keadaan lingkungannya tersebut, quadcopter dapat menggunakan banyak sensor sesuai keperluan. Terdapat beberapa 110
sensor yang dimiliki hampir setiap quadcopter. Sensor-sensor tersebut diperlukan untuk mendukung pergerakan mendasar dari quadcopter , diantaranya: 1. Global Positioning System (GPS) GPS adalah sistem navigasi dengan menggunakan satelit. Sistem ini dikelola oleh pemerintah Amerika Serikat and bebas diakses oleh siapa saja. Sensor ini bekerja dengan menerima data yang berisi waktu dan posisi satelit ketika data dikirimkan, melalui sinyal yang dipancarkan oleh satelit GPS. Dengan menerima data dari tiga satelit dengan posisi yang berbeda, data navigasi dapat dihitung secara realtime. Data navigasi dapat berupa posisi, arah, dan kecepatan pergerakan yang sedang terjadi. 2. Inertial Measurement Unit (IMU) IMU merupakan sensor yang berfungsi untuk menghitung percepatan serta orientasi arah pergerakan dari kendaraan udara dengan menggunakan kombinasi dari sensor accelerometer dan gyroscope.
Dengan
adanya
IMU,
kendaraan
udara
bisa
menghitung dan mengetahui pergerakan yang dilakukannya, sehingga dapat membantu kendaraan tersebut untuk mengetahui posisi serta lintasan yang dilaluinya tanpa menggunakan GPS (misalkan ketika tidak mendapatkan sinyal GPS). Secara umum IMU bekerja dengan menggunakan tiga sensor accelerometer yang digunakan untuk menghitung percepatan di
sumbu x, y , dan z. Nantinya, accelerometer akan dipadukan dengan gyroscope untuk menentukan arah mana yang sedang diambil oleh quadcopter ketika melakukan percepatan tersebut. Dengan mencatat dan menggabungkan semua perhitungan tersebut, akan didapatkan posisi baru dari quadcopter yang bergerak, serta jalur pergerakan yang diambilnya. 3. Ultrasonic Range Sensor Sensor ini digunakan untuk mendeteksi benda yang ada di sekitar quadcopter . Selain itu sensor ini juga dapat digunakan untuk 111
mengetahui ketinggian terbang yang dilakukan, dengan cara mendeteksi benda yang berada di bawahnya. Hal ini berguna untuk menjaga ketinggian terbang, misalnya ketika berada di dalam ruangan tertutup. 4. Kamera Pada quadcopter , kamera tidak hanya digunakan sebagai alat untuk mengambil gambar saja, tapi juga dapat digunakan sebagai sensor, misalkan untuk mendeteksi dan mengenali objek tertentu. Hal ini dilakukan dengan bantuan teknik/algoritma tertentu, misalkan image processing . 3.1.2 Prinsip kerja quadcopter Quadcopter memiliki dua pasang baling-baling seperti yang terlihat
pada gambar 3.2, dimana pasangan tersebut bergerak berlawanan arah dengan pasangan lainnya. Baling-baling bagian depan dan belakang quadcopter bergerak berlawanan arah jarum jam, sedangkan baling-
baling bagian kiri dan kanan bergerak searah jarum jam. Konfigurasi arah berlawanan dari baling-baling ini dapat menggantikan kebutuhan untuk memiliki baling-baling di ekor sebagaimana yang dimiliki helikopter standar, yang digunakan untuk mengatur arah pergerakan.
Gambar 3.2. Gambar Arah Putaran Baling-baling Quadcopter
Quadcopter memiliki ketentuan tersendiri terhadap variasi kecepatan
perputaran
setiap
baling-balingnya
untuk
dapat
melakukan
pergerakan tertentu. Dalam melakukan terbang melayang di udara, 112
yang dikenal dengan sebutan hover , quadcopter perlu menggerakkan keempat baling-balingnya dengan kecepatan yang sama. Setiap pasangan baling-baling memiliki arah gaya dorong yang memiliki fungsi berbeda, satu pasang sebagai pendorong ( pusher ) dan satu pasang sebagai penarik ( puller ).
Dengan adanya pergerakan yang
menghasilkan gaya dorong serta gaya tarik yang melawan gaya gravitasi tersebut, quadcopter dapat terbang melayang di udara dengan stabil. Selain gerakan melayang, quadcopter juga memiliki aturan tersendiri untuk
gerakan-gerakan
lainnya.
Beberapa
pergerakan
pada
quadcopter adalah:
- Gerakan naik turun . Untuk bergerak terbang ke atas dan ke bawah, quadcopter perlu menaikkan atau menurunkan kecepatan putar setiap
baling-baling dengan jumlah yang sama. Menaikkan kecepatan akan mengakibatkan quadcopter terbang ke atas, dan menurunkan kecepatan akan mengakibatkan quadcopter terbang ke bawah. - Gerakan berputar pada sumbu datar (menggulung) . Untuk melakukan gerakan tersebut, perlu dilakukan perubahan kecepatan perputaran baling-baling pada salah satu pasangan baling-baling. Untuk berputar pada sumbu x (roll ) perubahan kecepatan dilakukan pada pasangan baling-baling kiri dan kanan, sedangkan untuk berputar pada sumbu y ( pitch) perubahan kecepatan dilakukan pada pasangan baling-baling depan dan belakang. Perubahannya adalah salah satu anggota pasangan baling-baling dikurangi kecepatannya dan anggota pasangan baling-baling lainnya dinaikkan dengan selisih kecepatan yang sama, sedangkan baling-baling lainnya dibiarkan dengan kecepatan tetap. Dengan pengaturan seperti ini, quadcopter akan bergerak
memutar
dari
arah
pasangan
baling-baling
yang
berkecepatan lebih rendah, ke arah pasangan baling-baling yang berkecepatan lebih tinggi. - Gerakan ke samping kanan dan kiri pada sumbu z ( yaw ). Gerakan ini dilakukan dengan menurunkan kecepatan satu pasang baling-baling, 113
atas-bawah atau kiri-kanan, dan menaikkan kecepatan satu pasangan baling-baling lainnya. Nantinya, quadcopter akan bergerak berputar ke arah
perputaran
pasangan
baling-baling
yang
lebih
lambat
kecepatannya dibandingkan pasangan yang lainnya. 3.1.3 Kemampuan Quadcopter Quadcopter memiliki beberapa kelebihan yang menjadikannya cocok
untuk melakukan pekerjaan tertentu. Bentuknya yang kecil membuat quadcopter cukup leluasa untuk bergerak di tempat-tempat yang sulit. Quadcopter juga dapat terbang secara vertikal, yang berarti ia tidak
memerlukan landasan pacu untuk dapat terbang. Selain itu quadcopter juga dapat bergerak ke delapan arah mata angin tanpa
perlu memutar badannya terlebih dahulu. Jika dibandingkan dengan kendaraan udara bersayap, quadcopter jauh lebih unggul dalam hal manuver. Hal ini terkait dengan lebih sedikitnya ruang gerak yang dibutuhkan dalam melakukan take off ataupun melakukan pergantian arah. Kelebihan lainnya adalah quadcopter memiliki baling-baling yang cukup kecil, sehingga lebih aman untuk digunakan pada pekerjaan yang melibatkan interaksi dengan objek yang dekat. Dari segi desain, quadcopter lebih sederhana jika dibandingkan helikopter standar,
yaitu dalam hal pembuatan, pemeliharaan, dan perbaikan. Selain itu quadcopter juga memiliki kemampuan mengangkat muatan dengan
cukup baik walaupun ukurannya kecil. Kemampuan itu bisa digunakan untuk mendukung pekerjaannya, seperti membawa kamera untuk mengambil gambar dari udara. Walaupun memiliki banyak kelebihan, quadcopter juga memiliki kelemahan yang cukup mempengaruhi kinerjanya. Q uadcopter 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
kepen ingan
permainan, aeromodeling,
dan
augmented reality . AR.Drone dapat dijalankan oleh beberapa
perangkat, seperti Windo s, Linux, iPhone, dan Android melalui jaringan nirkabel. AR.Drone tidak hanya digunakan sebagai permainan saja, tetapi juga untuk kep ntingan pendidikan dan penelitian. Hal ini dikarenakan AR.Drone
emiliki harga yang cukup terjangkau,
ukurannya yang tidak terl lu besar, serta sudah mendukung sistem piranti keras dan piranti lunak l yang dibutuhkan untuk melakukan penelitian (Thomas, AR-D one). 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 pen 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.
Gamba r 3.3. Parrot AR Drone
AR.Drone pada gambar 3.3 dapat dikendalikan melalui perangkat kontrol yang terhubung
elalui 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 ukup baik, seperti terdapatnya pelindung
115
yang terbuat dari bahan gabus yang dipasang di sekitar baling-baling, serta adanya mekanisme berhenti secara otomatis dari baling-baling jika bersentuhan dengan suatu objek. Tabel 3-2 menunjukkan spesifikasi lengkap dari UAV AR.Drone. Tabel 3-2. Spesifkasi AR Drone
Sistem komputer
ARM9 468 MHz
bawaan
DDR 128 Mbyte at 200MHz
Wifi b/g
USB high speed
Linux OS
Berat:
Bentuk
380 gram tanpa pelindung 420 gram dengan pelindung
Dimensi:
5x29 cm tanpa pelindung 52,5x51,5 cm dengan pelindung Baterai
Waktu pengisian baterai : 1 jam 30 menit
Kecepatan Sistem pengamanan
Waktu terbang : sekitar 12 menit
Kecepatan terbang 5 m/s (18 km/h)
Gabus pelindung dalam ruangan
Kunci baling-baling otomatis ketika ada kontak
Perangkat pendukung
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 peneliti n dilakukan dengan modifikasi
dan penambahan beberapa modul. Modifikasi pada perangkat keras yang dilakukan adalah dengan menambahkan suatu sistem untuk menentukan lokasi yaitu dengan meng unakan Global Position System (GPS). Tipe GPS yang digunakan adalah 20 Channel EM-406A SIRF III receiver dengan antenna. Berikut ini dalah bentuk fisik dari modul
GPS.
Gambar 3.4. Modul GPS 20 C annel 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 mo ul 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 modu l GPS dan XBee pada ARDrone
3.2.2 Perancangan Sistem Secara keseluruhan Setelah proses modifikasi pada AR. rone selesai dilakukan, maka
tahapan selanjutnya adalah melakuk n perancangan sistem secara 118
keseluruhan. Pada sistem tersebut digunakan beberapa AR.Drone sebagai agen, PC, sink, da target. Selain itu digunakan juga sebuah wireless router yang be fungsi sebagai central terminal untuk
menghubungkan antar ko ponen-komponen tersebut. Gambar 3.6. menunjukkan sistem secara keseluruhan.
Gamba r 3.6. Rancangan Agen
Pada sistem tersebut digambarkan dua buah menara BTS yang terputus (ditandai dengan aris merah putus-putus). Tugas dari agen adalah menghubungkan jaringan komunikasi antara kedua menara BTS tersebut. Beberapa agen akan terbang dan membentuk formasi untuk menghubungkan ko unikasi antar menara. Setelah setiap agen berada di posisi yang tepat dalam formasi, maka dibentuk jaringan adhoc. Dengan menggunak n jaringan ad-hoc ini, informasi dapat dikirimkan menuju BTS. Algoritma yang digunakan untuk membentuk formasi adalah algoritma elf-Deployment (W. Jatmiko et al., 2009, Takahashi et al., 2007). Allgoritma ini sudah dijelaskan secara rinci pada subbab 2.3.3. Setelah perancangan selesai dilakukan maka tahapan selanjutnya adala melakukan implementasi pada AR.Drone. proses implementasi di jela kan pada subbab selanjutnya. 3.2.3 Proses implementa i Pada proses implementasi kebutuhan AR.Drone untuk mengetahui
posisi, baik posisinya sendiri maupun posisi AR.Drone lain, menjadi salah satu tujuan dari pe elitian 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 memberi an informasi mengenai koordinat tiga dimensi yang diinginkan. U tuk melakukan monitoring terhadap posisi dari AR.Drone, kami tela
mengembangkan sebuah aplikasi yang
dibangun di atas platform OS yang digunakan untuk melihat seluruh koordinat data setiap AR. rone. 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 menggu akan GPS. Tujuan dari penggunaan sensor GPS adalah untuk mendap tkan koordinat posisi AR.Drone yang lebih akurat dibandingkan dengan sensor IMU. Berikut ini adalah hasil screenshot AR.Drone pada eta UI.
121
Posisi robot ARDrone
Gambar 3.9. Penentuan posisi AR Drone menggunakan GPS
Pencarian informasi mengenai posisi
erupakan tahapan awal dalam
pemulihan
ahapan
menerapkan
jaringan
komunikasi.
selanjutnya
algoritma self-deployment yang
digunakan
adalah untuk
melakukan pencarian tujuan dari se iap agen. Sebuah agen akan bergerak dari suatu titik ke titik yang l in hingga membentuk formasi yang diinginkan. Pengaturan kecepatan setiap agen ketika bergerak dari satu titik ke titik lainnya me ggunakan konsep PID untuk mengurangi tingkat kesalahan. Beri ut ini adalah diagram yang menggambarkan rancangan perilaku setiap agen.
Gambar 3.10. Flow Diagram Pera cangan Behavioral Agent
122
Pada proses pengujian i i dilakukan dengan dua skenario yang berbeda. Pada skenario A, setiap agen memiliki posisi awal membentuk garis lurus ant ra sink dan target (Gambar 3.11. (a)). Pada skenario B, setiap agen dil takkan secara menyebar antara sink dan target (Gambar 3.11. (b)).
(a)
(b) Gambar 3.11. Skema uj icoba (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 Ag ent 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 endeteksi dan Pelacak Objek Hasil penelitian lain yang akan dijel skan pada subbab ini adalah penerapan UAV untuk mendeteksi d n melakukan pelacakan suatu objek. Untuk dapat melakukan pendeteksian dan pelajakan objek diperlukan suatu alat yang berfungsi ntuk menangkap gambar atau merekam video mengenai objek yang akan dideteksi. Pada UAV jenis quadcopter , yaitu AR.Drone, telah dile gkapi suatu sensor yang dapat
menangkap gambar maupun merekam video, sensor tersebut adalah sensor kamera. Sensor ini diletakkan
i 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 0
orientasi ini ditentukan sebanyak delapan buah (perbedaan 45
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 0 0 0 Orientasi ( ) 45 , (b) 90 , dan (c) 315
Gambar 3.17. Be berapa Gambar Objek Non-Topi
Proses pengambilan gam ar pada gambar 3.17 dilakukan secara manual menggunakan to bol PrintScreen di keyboard . Selanjutnya gambar dipotong meng unakan GIMP 2.6.11 – GNU Image Manipulation Program . Ga bar dipotong dengan resolusi 70x70 pixel . Gambar ini sesuai dengan kuran 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 Penu h Kamera Bawah AR.Drone (176x144 pixel )
3.3.1.2 Proses Awal Data
Proses awal data (data p eprocessing) merupakan proses ekstraksi fitur pada pengolahan dat 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 p mrosesan 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 utih, berdasarkan batas atau rentang nilai yang dipilih. 3. CCD: dalam implementasinya akan diambil nilai setiap 10o, jadi total fiturnya ada 36 bu h. Proses selanjutnya dalam p mrosesan data ini adalah feature selection (seleksi ciri) dengan metod Principal Component Analysis (PCA). PCA adalah suatu prosedur ma ematika yang menggunakan transformasi orthogonal untuk mentran formasi data yang kemungkinan memiliki
korelasi antar variabelnya ke dalam ruang dengan vektor basis yang tidak berkorelasi secara linear. l Vektor basis ini disebut dengan principal component.
Metode PCA dimulai deng n menghitung matriks kovarian ( covariant matrix ) dari data. Setelah itu, dekomposisi eigen value dari matriks
tersebut dihitung. Keluar n dari proses dekomposisi eigen value adalah vektor Eigen dan nilai Eigen. Vektor Eigen kemudian diurutkan berdasarkan nilai Eigen-ny masing-masing. Pada fase terakhir, data awal dikalikan dengan matriks transformasi yang diisi oleh vektor Eigen. Jumlah vektor Eige
yang dipakai pada matriks transformasi
tergantung dari jumlah fit r yang kita inginkan pada tahap terakhir. Proses PCA dapat dilihat pa a gambar 3.20.
Gambar 3.20. Bagan Proses PCA
131
a. Rata-rata ̅ =
1
b. Kovarian
= c.
1
(
− ̅ )(
− ̅ )
Dekomposisi Eigen
= ̅
d. Mengurutkan nilai Eigen dari yang terbesar e. Pengurangan fitur Misal, jumlah vektor p, dan pengurangan r , maka: jumlah vektor setelah dikurangi = p-r
11 ⋮ 1
1 ⋮
11 ⋮ 1
1 − ⋮ −
11 ⋮ 1
1 ⋮ =
1 ⋮ 1
1 ⋮
Dengan metode ini diharapkan jumlah fitur data dapat dikurangi selama masih dapat merepresentasikan data aslinya. Metode PCA digunakan pada penelitian ini dikarenakan proses pelatihan dan validasi keakuratan melibatkan banyak data. Data yang banyak ini pada proses algoritma jaringan syaraf tiruan (JST) akan cukup memberatkan karena level iterasi yang ada di dalamnya berjumlah empat level (N4). Level iterasi tersebut antara lain adalah iterasi pembelajaran (epoch), iterasi data, iterasi kelas, dan iterasi fitur. Dengan demikian mengurangi jumlah fitur akan meringankan proses yang dilakukan. Oleh karena alasan-alasan itulah metode PCA digunakan. Proses PCA disini memiliki input berupa hasil dari pengolahan citra yang
telah
dilakukan
sebelumnya.
Dalam
implementasinya,
132
pengurangan fitur yang dilakukan ada sebanyak 34 fitur. Dengan demikian, fitur yang akan dihasilkan setelah proses ini dilakukan ada sebanyak satu buah. Hal ini ditentukan berdasarkan hasil percobaan yang dilakukan. 3.3.1.3 Proses Pelatihan GLVQ
Setelah dilakukan seleksi fitur menggunakan metode PCA maka tahapan selanjutnya adalah melakukan proses klasifikasi. Dalam proses ini terdiri dari dua fase yaitu fase pelatihan dan fase pengujian. Fase pelatihan merupakan fase yang digunakan untuk mendapatkan bobot yang sesuai dengan kelas yang dituju sehingga setiap data dapat diklasifikasikan dengan benar. Pada fase ini digunakan algoritma Generalize Learning Vector Quantization (GLVQ). Algoritma ini
merupakan algoritma jaringan syaraf tiruan (JST) yang dikembangkan oleh A. Sato dan Yamada pada tahun 1995 (Sato et al., 1996). Algoritma ini merupakan pengembangan dari algoritma jaringan saraf tiruan lainnya yaitu algoritma Learning Vector Quantization (LVQ) yang dikembangkan oleh Kohonen (Kohonen, 1997). Pada algoritma GLVQ konvergensi bobot terjamin walau datanya tidak terurut dengan baik. Hal
tersebut
dapat
dicapai
karena
metode
yang
digunakan
berdasarkan pada proses minimisasi dari cost function yaitu 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 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
−x
,
−
Dalam implementasi yang dilakukan nilai x
y
,
= 88 sedangkan
= 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 R.Drone Program pengujian dilakuk n dengan menjalankan perintah-perintah pemanggilan program pad 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 endeteksian AR.Drone. Berikut ini adalah tahapan pengujian yang dil kukan.
(a)
(b)
(c) Gambar 3.25. Proses pen gujian (a) posisi awal ARDrone (b) Pesisi peletakan objek (c hasil pendeteksian oleh ARDrone
Proses pelacakan objek ole AR.Drone dilakukan dengan menggerakan objek ke arah kiri atau kanan.
139
Gambar 3.26. Proses Pengujia Pelacakan Objek Topi
Dari hasil pengujian, robot AR.Dro e telah berhasil melakukan pendeteksian dan pelacakan objek to i. Namun dalam pengujian ini area di mana objek topi diletakkan har s memiliki warna yang kontras terhadap warna topi. Hal ini masih menjadi issue permasalahan yang dihadapi karena pada keadaan sebena nya 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 Pem entukan Formasi UAV Dalam Mengeksplorasi Rua g Telah dijelaskan pada bagian awal bahwa salah satu kegunaan dari UAV adalah untuk melakukan penc rian dan penyelamatan pada daerah yang sulit dijangkau. Daerah yang sulit dijangkau tersebut dapat berupa area terbuka atau ar a 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 eluruh 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
3.4.3.3
Implementasi Pembuatan Formasi Quadcopter
Simulasi pembuatan formasi ini bertujuan untuk mencoba penerapan algoritma pembentukan formasi pada quadcopter . Pada simulasi ini, beberapa quadcopter akan bergerak membentuk formasi. Quadcopter akan bekerja secara semi autonomous, yaitu sebagian pergerakan didasari dari informasi yang diberikan user , dan sebagian lainnya didapatkan melalui perhitungan berdasarkan laporan dari sensorsensornya. 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
151
kepala
sudah
menerima
notifikasi
tersebut,
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 0
keseluruhan lintasan lingkaran, yaitu 360 . Dengan pembagian tersebut, setiap quadcopter akan memiliki jarak yang sama antar
152
quadcopter yang bersebelahan. Jika dituliskan, rumusnya adalah
sebagai berikut. Quadcopter i =
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 + jari jari 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 langkah-
langkah 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 sin3 . 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 sin4 .
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
Jangka waktu pelaksanaan
Garis lurus
1 menit 2 detik
Lingkaran
2 menit 7 detik
Segitiga
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
Jangka waktu pelaksanaan
Garis lurus
56 detik
Lingkaran
1 menit 56 detik
Segitiga
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. Cont roller CM-510
2. AX-12 Servo Motor
Merupakan motor servo yang berp ran sebagai sendi-sendi robot. Motor ini memiliki 1024 titik koordinat. Seluruh titik–titik koordinat tersebut mewakili 330 derajat. Keseluruhan terdapat total 18 motor yang disertakan dalam kit ini.
Gambar 4.3. Dyna ixel AX-12
3. Lipo battery Merupakan sumber energi bagi r bot saat bergerak. Baterai ini memiliki tegangan 11.1v dan arus 1 00mA. 4. Gyro sensor GS-12 Merupakan sensor untuk meng tahui perubahan kemiringan robot, sehingga dapat memban u keseimbangan robot saat berjalan seperti yang terlihat pa a Error! Reference source not found.. Data sensor acceleromete
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. Mod ul 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 kon rol yang berpasangan dengan modul IR receiver . 4.1.1.2 Komponen Tambahan Penyu un Robot Soccer
Komponen-komponen pada 4.1.1.1 merupakan komponen yang disertakan saat pembelian Bioloid pr mium kit . Terdapat beberapa sensor yang tidak boleh dipergunakan saat pertandingan robot soccer khususnya IR sensor dan DMS sensor s hingga diperlukan penggantian komponen-komponen
tersebut
de gan
komponen
lain
yang
diperbolehkan. Komponen-komponen tambahan tersebut adalah: 1. Accelerometer MMA7260 Accelerometer digunakan
sebag i
sensor
tambahan
untuk
mengukur kemiringan robot unt k mendeteksi apakah robot sedang
dalam
keadaan
jatuh
(gambar
4.5).
accelerometer dibaca oleh CM 510 berupa
Data
sensor
tegangan, dan
diterjemahkan dengan ADC.
Gambar 4.5. Accelerom eter 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 Modul Kamera dengan resolusi maksimal 352 x 288
dan kedalaman
warna 8 bit (gambar 4.6). Kamera ini memberikan nilai RGB kepada LPC2106.
Gamb r 4.6. Sensor Kamera OV6620
3. Additional Microcontrol er Philips LPC2106 Prosesor ARM7TDMI d ngan kecepatan CPU 60Mhz, RAM 64KB, dan ROM 128KB. LPC 106 (gambar 4.7) pada CMUcam3 dapat menggerakkan hingga empat buah servo serta memiliki dua buah port UART
untuk
erkomunikasi
dengan
perangkat
lain.
Microcontroller ini digunakan untuk memproses gambar yang
diterima dari kamera
an menggerakkan servo Turnigy TGY-90S
pada kepala, mendetek i 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-R bot 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 s nsor 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. Progr m ini merupakan sebuah environment visualisasi tiga dimensi pada ROS. Pemanfaatkan program ini membuat data yang diperoleh dari sensor seperti Microsoft Kinect dapat divisualisasikan dala
bentuk tiga dimensi. Visualisasi ini akan
mempermudah proses debugging dan simulasi robot. Contoh proses visualisasi dapat dilihat pad 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_link 1, node /kinect_base_link 2, node /kinect_base_link 3, 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. R boplus
RoboPlus manager merupakan subaplikasi yang berfungsi untuk pengaturan– pengaturan dasar kompo en 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 pembac an sensor. Tampilan RoboPlus manager dapat dilihat pada gambar 4.1 .
Gambar 4.13. RoboPlus Manager
180
Sedangkan RoboPlus Motion digunakan untuk membuat atau mengatur motion (geraka ) 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 pe gaturan delay dan waktu pengeksekusian. Pada bagian tengah bawah terdapat pengaturan lanjutan dari langkahlangkah, baik speed rat , repeat time, maupun inertial force. Sedangkan bagian ketiga (kanan) merupakan antarmuka untuk mengunggah data koordi at servo dari komputer ke robot atau mengunduh data koordinat servo dari robot ke komputer.
Gambar 4.14. Roboplus Motion
Sementara itu RoboPlus Ta k Manager digunakan untuk memprogram logika robot untuk menjalankan tugas. Program yang dapat dibuat menggunakan RoboPlus Ta k ini menyerupai program komputer pada umumnya, atau tepatnya
irip program C. Melalui Roboplus dapat
dibuat sintaks pemanggil n motion (gerakan) robot yang dibuat menggunakan roboplus m otion. Roboplus task ini bisa dikatakan sebagai aplikasi untuk membuat program yang mengatur jalannya gerakan-gerakan yang tel h dibuat. Tampilan antarmuka aplikasi Roboplus task dapat dilihat pada gambar 4.15.
181
Gambar 4.15. Roboplu Task manager
4.2 Robot Humanoid untuk Pertandingan Soccer Pertandingan robot soccer merupa an salah satu cabang yang diperlombakan pada Kontes Robot
erdas 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 H manoid Soccer Tata cara perlombaan robot soccer berbentuk humanoid yang
dijabarkan disini mengikuti peraturan ang 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 dala 2.
kompetisi.
Lapangan Lapangan yang digunakan dala
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.
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.
183
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 Pembagian wilayah untuk masing-masing 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 dan memasukk memasukkan an bola ke gawang gawang lawan. lawan. Algor Algoritma itma robo robott penyera penyerang ng dapat dapat digambar digambarkan kan pada pada Gambar Gambar 4.21. 4.21. Setiap Setiap kali iteras iterasii 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 bola berada pada jarak jarak yang dekat dekat atau jauh. Jika bola masih 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.
Gamba Gam barr 4.2 4.21. 1. 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 langsung mundur menuju menuju posisinya. Robot kiper bertugas menjaga gawang tim. Flow algo algori ritm tma a unt untuk Gambar 4.22 4.22. Dapat dilihat bahwa secara robot kiper dapat dilihat pada Gambar
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. lawan. Pada strategi strategi ini m memang emang tidak tidak disebutkan disebutkan bahwa 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.
Gamba Ga mbarr 4.2 4.22. 2. Flow Algoritma Robot Kiper pada saat Pertandingan
4.2.3 Im 4.2.3 Impl plem emen enta tasi si Kec Kecer erda dasa san n Robo Robott 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. 4. 2.3. 3.1 1 Ko Komu muni nika kasi si ant antar ar Controller
Komunikasi antara LPC2106 dengan CM-510 dilakukan melalui komu ko muni nika kasi si UART UART (Universal Asynchronous Receiver / Transmitter ), ), dengan Baud Rate 57600, 57600, de denga ngan n 8 data data bit, bit, tan tanpa pa 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: Berjala alan maj maju u 2: Berja erjala lan n mundu undurr 3: Berpu erputa tarr ke ke kir kirii 4: berputa berputarr ke kanan, kanan, dan seterus seterusnya nya.. 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 didapatk didapatkan an dari dari 1+ 4. 4.2. 4. 2.3.2 3.2 Al Algo gori ritma tma De Detek teksi si Ob Obje jek k
Berdasarkan aturan pertandingan robot soccer , set setia iap p obje objekk yan yang g 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, itu, algo algori ritm tma a 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 tertentu yaitu yaitu , dimana dimana nilai nilai yang yang diperh diperhatik atikan an adala adalah h nilai nilai yang yang lebih lebih besar besar dari dari
saja. saja. Hal Hal ini ini juga juga dapat dapat dilak dilakukan ukan dengan dengan cara cara sebali sebalikny knya, a,
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 Kalibrasi Penentuan Penentuan Rentang 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 kalibrasi untuk menentuka menentukan n rentang RGB warna oranye oranye (bola) dapat dapat diliha dilihatt pada pada Gambar Gambar 4.23. 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
pengidentifikasian berdasarkan
bola
untuk
dicari.
Proses
pencarian
dan
menggunakan
algoritma
color
filtering
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(){ //verifikasi bahwa robot kehilangan bola 2 for(int i=0;i<3;++i){ 3 cc3_pixbuf_load(); 4 cc3_track_color(&t_pkt[0]); 5 if (t_pkt[0].int_density >= 5) return true; //menemukan bola 6 } //awal pencarian 7 servo.x = cari.x0; 8 servo.y = cari.y0; 9 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){ cc3_gpio_set_servo_position (1, servo.y); 13 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]); if (t_pkt[0].int_density >= 5) return true; //ketemu :D 19 cc3_pixbuf_load(); 20 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; if (servo.x > cari.x1) servo.x = cari.x1; 25 cari.gx *= -1; 26
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
Gambarr 4.30. Robot Gamba Robot Berjalan Samping Samping Kanan Kanan
6. Jika Jika bola bola di di sebel sebelah ah kiri kiri robot robot maka maka robot robot akan akan berjal berjalan an ke ke sampi samping ng Gambar 4.31 4.31. kiri seperti yang yang terlihat terlihat pada Gambar
Gambar 4.31. Robot Robot Bergerak Sampin Samping g Kiri
4.2.3.5 Algoritma Mengatur Keseimbangan Keseimbangan
Gerakan robot diatur atur oleh LPC2106 106, namun CM-510 510 mengat ngatur ur keseimbangan robot dengan sensor accelerometer dan gyro. Jika nilai sensor accelerometer menanda menandakan kan bahwa bahwa robot robot terjat terjatuh, uh, CM-51 CM-510 0 mengatur gerakan bangun terlebih dahulu. Setiap gerakan berjalan akan menghasilkan perubahan arah robot yang mengubah nilai dari sensor gyro, nilai ini digunakan digunakan untuk mengatur mengatur kembali offset pada servo kaki robot agar robot dapat berjalan lebih stabil. 4.2. 4. 2.3.6 3.6 Al Algo gori ritma tma Me Menga ngatu tur r Tenda Tendanga ngan n Bola Bola
Saat bola berada dalam jangkauan tendangan robot, robot akan mencari arah gawang lawan, lalu memutari bola hingga menghadap ke gawang lawan. lawan. Setelah itu, itu, robot bergeser bergeser sedikit sedikit ke ke kanan atau ke 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. 4. 2.3. 3.7 7 Si Sist stem em Kon Kontr trol ol PID 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 kontr ko ntrol ol integr integral al yang yang menggu menggunaa naan n error pada state sebelumnya sebagai tambahan untuk perhitungan feedback . Penambahan metode kontrol integral integral ini berguna berguna untuk untuk menghilangk menghilangkan an steady-state error yang dihasilkan oleh metode kontrol proporsional. Dengan demikian, kombinasi kontrol proportional-integral (PI) ini sudah mampu konvergen konvergen menuju menuju kecepatan kecepatan yang diinginkan. diinginkan. Walau demikia demikian n 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 kontrol dapat dapat diliha dilihatt pada Gambar Gambar 4.32. 4.32. Grafik perilaku kontrol PID.
197
(a)
(b)
(c)
(d)
G ambar 4. 32. Graf ik p eri lak u k ntrol PID (Braunl 2006)
Pada Gambar 4.32. (a) dapat dilihat b hwa untuk berbagai kombinasi nilai konstanta propostional (KP), st steady state error tetap muncul meskipun pun ke kecepata patan n ak aktua tual ro roda su ah konvergen. Pada gambar ter terseb sebut juga uga dap dapat at dili diliha hatt ba bahwa hwa un un uk nilai KP yang sangat sanga t besar akan akan me meni nimb mbul ulka kan n osil osilas asii nila nilaii ke kece cepa patan roda roda motor. motor. Pada Gambar Gambar 4.32.
(b),
dapat
dilihat
bahwa
ombi ombina nasi si kontr ontrol ol PI dapa dapatt
menghilangkan steady state error , w lau masih terjadi osilasi yang cukup besar sehingga sulit untuk kon erge ergen. n. Pada Pada Gambar Gambar 4.32. 4.32. (c), (c), dapat dapat dili diliha hatt bahw bahwa a komb kombina inasi si kon kontr tr l PD mampu mampu untuk untuk me menca ncapai pai konvergensi dengan cepat, meskipun sampai akhir state tetap ada steady state error . Dengan menggabungkan ketika aspek tersebut
diperoleh hasil kontrol yang cepat dan idak mengandung steady state seperti ti pada pada Gamb Gambar ar 4.32 4.32 (d). (d). error seper
198
Alur kontr ontrol ol PID secara len eng gkap dapa dapatt dilihat dilihat pada pada Gambar Gambar 4.33. 4.33. stat atic ic in intt r_old=0, e_old=0, e_old2=0; 1 st
2 ... 3 e_fun e_funcc = v_des v_des - v_act; v_act; 4 r_ r_mot = r_ r_old old + Kp*( p*(e_f e_funcunc-e e_ ld) + Ki*(e_func+e_old)/2 5
+ Kd*(e Kd*(e_f _func unc - 2* e_o e_old ld + e_old2);
6 r_mot = min(r_mot, +100); /* limit output */ 7 r_mot r_mot = max(r_m max(r_mot, ot, -100); -100); /* li it output */ 8 r_old = r_mot; 9 e_old2 = e_old; 10 e_old = e_func;
G amba 4.33. Alur kontrol PID
Berikut ad adalah la langkah-langkah dalam menentukan nilai KP, KI, dan KD: 1. Tentukan nilai KP s mbarang, nilai KI = 0 , dan nilai KD = 0. Selan Se lanju jutny tnya, a, naik naikka ka nilai KP, sampai terjadi osilasi. 2. Jika Jika terj terjad adii osi osila lasi si nilai KP dibagi dengan 2. Langkah ini berulang terus men rus sampai tidak terjadi osilasi lagi. 3. Naikkan nilai KD sa pai respon yang diberikan sesuai. 4. Naikkan nilai KI se ara perlahan-lahan sampai terjadi osilasi lagi lagi,, lalu lalu nila nilaii KI KI diba dibagi dengan 2 atau 3.
G ambar 4.3 4. Des kri si joi joint nt 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 pada Gamb Gambar ar 4.34 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 aplikasi ini ada ada dua unit kontrol kontrol yang dijalankan dijalankan yaitu yaitu kontrol kontrol terh terhad adap ap posi posisi si serv servo o
dan dan ko kont ntro roll terh terhad adap ap posi posisi si serv servo o
. Se Seba baga gaii
parameter untuk menentukan apakah posisi servo sudah benar maka akan digunakan lokasi pixel dari titik tengah (center) objek yang ditracking. Lo Lokkasi asi tit titik ik teng tengah ah obje objekk mem memil ilik ikii kkoo oorrdina dinatt
dan dan
terhada terhadap p leb lebar ar 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 Sama haln halnyya de deng nga an tubu tubuh h manu manusi sia, a, pada pada robo robott ter tersebu sebutt ter terdapa dapatt bany banyak ak send sendii yang yang be berf rfun ungs gsii seba sebaga gaii pusa pusatt dari dari pe perg rger erak akan an tubu tubuhn hnya ya.. Beberapa gerakan dasar seperti gerakan tangan dan kaki dapat dik dikombi ombina nasi sikkan me men njadi jadi gera geraka kan n be berj rjal alan an,, sepe sepert rtii be berl rlar ari, i, be berrhe hent nti, i, dan berputar ke kiri atau ke kanan. Pada saat ini, mayoritas dari gera geraka kan n ter tersebu sebutt adal adala ah hasi hasill input secara manual ke robot melalui piranti llu unak yang sudah tersedia dari paket peralatan (kit ) robot tersebut. Namun de d emikian, kekurangan dari cara ini adalah membutuhkan waktu yang lama untuk menentukan gerakan yang diinginkan. Hal ini disebabkan karena banyaknya motor yang harus diken enda dallikan seh ehiingg ngga terlalu bany anyak kombin binasi yang harus dicoba oba
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) me iliki interface USB (Universal Serial Bus) dan harganya relatif mur h. Hal ini membuat berbagai
komunitas
mulai
memanfaatkan
mengembangkan piranti lunak dapat
Microsoft
Kinect
dan
enggunakan Microsoft Kinect
di beberapa sistem operasi komputer ( indows, Linux, Mac).
Gambar 4.35. Microsoft Kinect XBOX 360
Microsoft sendiri sudah mendukung Microsoft Kinect untuk penelitian robotika dengan menyediakan Mi rosoft Kinect for Windows Standard Development Kit (SDK).
inect
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
ada
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 me udahkan proses multitasking. Disamping itu, pada ROS juga sudah tersedia packages pendukung yang dibuat oleh komunitas. Peran packages ini mirip library yang digunakan untuk memudahkan pembu tan 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
mempergunakan
Kinect Fuzzy
setepat Neuro
mungkin.
Generalized
Algoritma Learning
JST
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. Informasi–informasi 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 matematis dapat dituliskan untuk setiap input
dan secara akan dikalikan
=∑ , atau dalam bentuk vektor, vektor X · W dengan X = [ x 1, x 2, …, x n] dan W = [w 1, w 2, …, w n]. dengan bobot
sehingga jumlah totalnya adalah
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 t←0 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.
( (
) μ )
μ
2=2.
(1 − ) (2 − μ − μ )
{adjust prototype 1} for w1,i Є w1 do if w1,i,min < xi ≤ w1,i,mean then
( + 1) ←
,,
( )− .
,,
.
.( (
)
.
μ )
μ
(
)
else if w1,i,mean < xi ≤ w1,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
( + 1) ←
,,
,,
( )+ .
.
.( (
μ
) μ )
.
(
)
else if w2,i,mean < xi ≤ w2,i,max then
( + 1) ←
( )− .
.
)
.( μ
μ
.
(
)
end if end for , ,
209
←
( + 1) −
←
,
,
( + 1) −
,
,
( )−
( )−
,
,
( )
( )
if mce < 0 then
{Increase Fuzziness}
←
,
−
,
←
,
−
,
−
,
. 1+( . )
,
−
,
,
. 1+( . )
else
{Decrease Fuzziness}
←
,
−
,
←
,
−
,
−
,
. 1−( . )
,
−
,
,
. 1−( . )
end if else
{Increase Fuzziness for all vector ref.} for wj Є W do ,
←
−
, ,
←
−
, ,
−
. 1+( . )
, ,
−
,
. 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 sendi–sendi 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 sim lasi pada Rviz. Berikut adalah modifikasi yang dilakukan.
Berkas PremiumTy eA.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.
Setelah ditampilkan PremiumTypeA.xargo
pada yang
aplikasi
Rviz,
berkas
merepresentasikan
berkas robot
humanoid premium type A dapat dilihat pada Gambar 4.45.
Gambar 4.45. Tampil an 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 (subscribe)
student_project pesan
ini
(topic)
berfungsi
untuk
joint_state
menangkap dari
node
tracker_joint_controller dan mem- publish topic–topic 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.
student_project anwar BSD http://ros.org/wiki/student_project
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 nama-
nama 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 sendi–sendi 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.
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
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 diubah–ubah 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. Konfig Konfigura urasi si berkas berkas sendi sendi robot robot (sp_prem (sp_premium ium_a. _a.yam yaml) l) 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: init : 512 min: 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: init : 512 min: 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: init : 512 min: min : 0 max: 1023
Pada Pada berka berkass sp_pr sp_prem emiu ium_ m_ya yaml ml setia setiap p topik topik yang yang ditul ditulis is pada pada berkas berkas launche launcherr studen student_p t_proj rojectect-ful full.l l.laun aunch ch dikonfi dikonfigur gurasi asi dengan dengan ID motor motor tertentu, tertentu, nilai 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 gambar 4.46 4.46.
Gambarr 4.46. Interaksi Gamba Interaksi antara Komponen Komponen di Dalam Robot Bioloid Bioloid
220
Hasil screenshot dari implementasi ini dapat dilihat pada Gambar Gambar 4.47 4.47.
(a)
(b)
221
(c)
(d)
Gambar 4.47. Tampilan Tampilan Bioloid Tipe Premium Premium A pada Rviz
222
4.3.4.2 4.3 .4.2 Imi Imitas tasii Sebagi Sebagian an Gera Gerakan kan pada pada Rii Riill Robot Robot
Seperti yang dijelaskan pada bagian sebelumnya, robot juga akan diprogram untuk menirukan gerak manusia secara parsial atau seba sebagi gian an
saja saja..
Terrdapa Te dapatt
bebe be berrapa apa
taha tahapa pan n
dala dalam m
mengimplementasikan peniruan sebagian gerak ini. Pertama-tama, data gerakan gerakan manusia diakuisis diakuisisii dengan sensor sensor Kinect. Selanjut Selanjutnya, nya, akan dilakukan klasifikasi untuk memilih gerakan mana yang akan dieksekusi dieksekusi oleh oleh robot berdasarkan berdasarkan data data gerakan gerakan manusia tersebut. tersebut. Oleh sebab itu, gerakan-gerakan yang bisa dilakukan robot terbatas seperti seperti yang yang diuraik diuraikan an pada Tabel Tabel 4-1. Klasifikasi Gerakan Robot. Tabel 4-1. Klasifikasi Klasifikasi Gerakan Gerakan Robot Robot
No
Gerakan
1.
Jalan ke depan
2.
Jalan ke ke belakang
3.
Jalan ke kanan
4.
Jalan ke kiri
5.
Jalan ke depan kanan
6.
Jalan ke depan kiri
7.
Tendang dengan kaki kanan
8.
Tendang de deagan ka kaki kkiiri
9.
Putar ke kanan
1 0.
Putar ke kiri
1 1.
Hadang ke ke ka kanan
1 2.
Hadang ke kiri
1 3.
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 gerakan manusia manusia yang yang terekam terekam.. Oleh sebab itu, implementasi implementasi versi 2 ini
dilakukan
dengan
membuat
satu package
saja
bernama
ui_robosoccer. Package ini berfungsi mengakuisisi data skeleton dari manusia dan mencari mencari gerakan gerakan mana yang yang sesuai sesuai dengan 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.
ui_robosoccer fr BSD http://ros.org/wiki/ui_robosoccer
2.
Pembuatan berkas launcher Untuk memberikan argumen program apa saja yang akan dijalankan sewaktu package digunakan beserta parameternya maka dibuat berkas launcher sebagai berikut.
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.
Pergerakan
Jumlah Sample
1.
Standby
400
2.
Move Right
400
3.
Move Left
400
4.
Move Forwareg
400
5.
Turn Right
400
6.
Turn Left
400
7.
Move Backward
400
8.
Right Kick
400
9
Left Kick
400
10.
Right Punch
400
11.
Left Punch
400
230
12.
Left Forward Punch
400
13.
Right Forward Punch
400
Setelah dilakukan percobaan, diperoleh tingkat akurasi pengenalan gerakan manusia seperti pada Tabel 4-3. Tabel 4-3. Tingkat Akurasi
Fold
Accuracy (%)
Kappa
1.
99.81
1.0
2.
100.00
1.0
3.
99.81
1.0
4.
100.00
1.0
5.
99.81
1.0
6.
100.00
1.0
7.
99.81
1.0
8.
99.81
1.0
9
99.81
1.0
10.
99.81
1.0
Rata- Rata
99.87
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
mengimplementasikan
robot PSO
sebagai
diharapkan
kawanan dapat
yang
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. 113–118. 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: O’Reilly 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. 1434–1439. 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 Algorithm.
Adaptive 2010
ZigBee-based
International
Indoor
Conference
Positioning 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 Bräunl, (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
Sebutan robot pra-modern, yang tidak memiliki kemampuan otonom
Ad-hoc routing protocol
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
salah
implementasi
dari
satu swarm
intelligence Application Programming Interface
Metode atau Fungsi khusus yang didefinisikan oleh sistem operasi atau aplikasi tertentu sehingga programmer dapat melakukan request
Autonomous Mobile Robot (AMR)
Ssebuah
mesin
otomatis
yang
mampu bergerak pada suatu kondisi tertentu Cartesian
Koordinat dua dimensi dalam x,y
Cluster
substructure dari network yang saling terhubung
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
Cost Function
Pada permasalahan optimisasi, merupakan fungsi matematis yang
237
berusaha diminimalisasi/maksimalisasi Dead reckoning
suatu prosedur matematis untuk menentukan posisi sebuah kapal pada
suatu
saat
menggunakan
pengetahuan
mengenai
sebelumnya
dan
perpindahan
yang
posisi perkiraan
dialami
kapal
tersebut dalam suatu periode waktu Degree of Freedom (DOF)
Derajat kebebasan pada lengan robot
Differential Steering
Mekanisme berbelok menggunakan prinsip perbedaan arah rotasi roda pada sisi yang berbeda
Feature
Pada pembelajar mesin menunjukkan ciri khusus dari input data. Umumnya berdimensi lebih dari dua
Full autonomy
Derajat robot dalam bergerak otonom tanpa campur tangan manusia
Gait
Pada bidang robotika, menunjukkan total kemungkinan kombinasi kaki dalam bergerak
Gradient Descent
Pada permasalahan optimalisasi, merupakan metode untuk mencari lokal optimum
Integer
Nilai bilangan bulat pada komputer dengan rentang terbatas. Mesin 32bit memiliki rentang 0 - 4 GB
Komputasi Cloud
Komputasi menggunakan sumber daya tak terbatas yang tersimpan dalam sistem cloud
ladar
Teknologi pemindaian untuk membuat mapping 3D lokal menggunakan gelombang laser
Latency
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
Mitigasi
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 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
Motion Planner
Pelaku yang menentukan motion planning
Orthogonal
Ortogonal, bidang yang tegak lurus dengan bidang benda saat ini
Otonom
Mandiri
Overhead
perbandingan antara paket routing yang dikirimkan melalui jaringan dengan jumlah paket data yang berhasil sampai di tempat tujuan
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
Rotasi dalam koordinat y
Pixel
Pada citra digital menunjukkan posisi koordinat dalam x,y
Pseudocode
Kode atau tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan suatu masalah
Quadcopter
Model helikopter mempunyai 4 buah motor untuk terbang
Radar
Teknologi pemindaian untuk mencari objek bergerak menggunakan gelombang radio
Received Signal Strength Indicator
Besaran kuat sinyal hasil pengukuran
(RSSI)
Xbee
Remote
Berjarak
Robot Al-Fath
robot untuk
yang
telah
dikembangkan
kepentingan
penelitian
pencarian sumber kebocoran gas atau sering disebut dengan istilah Odor Source Localization (OSL). Roll
Rotasi dalam koordinat x
Route Table Management
Suatu proses untuk memelihara koneksi ke dan dari link-link yang aktif, agar node sumber tetap dapat terhubung dengan node tujuan
Scalability
kemampuan dari jaringan dalam suatu kerja
sistem
untuk
sebagai
peningkatan
akibat
dari
pertumbuhan jumlah nodes yang
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)
Spanning Tree Protocol
Protokol jaringan yang menjamin topologi jaringan bebas-perulangan untuk penghubung Ethernet LAN
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.
Threshold
Nilai ambang batas. Jika suatu nilai melewati nilai ini, maka nilai tesebut dipass. Dapat berlaku juga kebalikannya.
Turbo Jet
Jenis mesin yang digerakkan dengan tenaga jet
Unmanned Aerial Vehicle
Kendaraan yang memiliki kemampuan untuk terbang tanpa adanya campur tangan manusia untuk mengarahkannya
Unmanned Ground Vehicle
Kendaraan darat yang memiliki kemampuan bergerak otonom tanpa operator
Variabel
Pada bidang pemrograman menunjukkan tempat penyimpanan sebuah data berdasarkan tipe tertentu misalnya int, double, string
Wireless
Koneksi jaringan tanpa kabel
Yaw
Rotasi dalam koordinat z
241
Zigbee
Sebuah protokol komunikasi untuk komunikasi
jarak
dekat
yang
beroperasi pada frekuensi 2.4 GHz
242
7. Daftar Indeks A
Core Extraction Distributed Ad Hoc Routing............................................103
Accelerometer..................................... 174
Cost function........................................133
ADC...................................... 171, 172, 174 ad-hoc network .................................... 100
D
agent...................................................... 87 Al-Fath ........ 54, 67, 71, 89, 90, 96, 98, 240
Data ...17, 85, 87, 89, 90, 92, 99, 104, 111,
AMR............................................... 96, 237 Analog Digital Converter ..................... 172
126, 128, 129, 130, 131, 133, 135, 145, 153, 170, 177, 181, 190, 203, 205, 212,
Ant Colony Optimization ..................... 237 Application Programming Interface .....92,
216, 217, 218, 223, 225, 230, 239, 241 Dead Reckoning .....................................82
176 AR Drone ............................................. 115
Destination Sequenced Distance Vector ........................................................102
Artificial Intelligence.... 176, 250, 251, 252 Asimo..................................................... 24
Distance ....................... 59, 61, 67, 96, 173 sensor....................................61, 67, 78
Autonomous ............................ 23, 87, 149
sensor beam ......................................67
Mobile Robot............................ 96, 237
B
Distributed Bellman-Ford...................................102 Dummy object .....................................145
E
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
Encoder............................................83, 90 Energy-constrained operation .............101 Error.....................................133, 134, 138 Reduction Parameter ........................63 Extended Position By Line......... 59, 60, 75, 76, 77
Bullet physics engine ........................... 143
F
C
Feature extraction........................................131
Capacity link ........................................ 101
Fixed
Carrier.................................................... 85 CCD .............................................. 130, 131
-cable ..............................................101
Checksum ............................................ 190 Child object.................................. 145, 146
Floodfill ............................................ 70, 76 Frame.....................................................62
Circular movement.............. 153, 159, 161 Complete graph............................... 75, 76
G
network...........................................101
Constraint Force Mixing ........................ 63 Constriction Factor ................................ 81 Contour................................................ 130 Controller ....171, 180, 201, 210, 216, 218, 225, 228
243
Gain factor ...........................................133 Generalized Learning Vector Quantization ........................................................234 Global
best................................. 81, 82, 95, 99
Missclassification error ........................133
Positioning System ......................... 111 GLVQ............................ 126, 128, 133, 135
Mobile ad-hoc ............................. 100, 102, 237
GPS ...................................... 111, 144, 233 Gradient Descent................................. 133
ad-hoc Network ......................100, 239 host ......................... 100, 102, 103, 104
Grayscale ............................................. 130
node........................................100, 237
Gyroscope............................................ 111
platform .......................................... 101
H
robot ...........................................82, 86 wireless networks ............................101
Handle ................................................. 146 Hardware..................................... 115, 170 Hardwired link ..................................... 101 Header................................. 103, 145, 173
Motion Capture ...........................................202 Stability Control ..............................210 Multitasking ......................................... 202
Host ..................................... 100, 101, 102 Hover................................................... 113
N
Hybrid Protocol ................................... 103
Node ......60, 61, 77, 78, 79, 85, 91, 93, 95,
100, 101, 102, 103, 104, 127, 136, 178,
I IMU.............................. 111, 115, 116, 144
216, 237, 239, 240 Noise....................................................101 Novel Cluster Based Routing................104
Inertial force ........................................ 181 Inertial Measurement Unit.......... 109, 111
Numerical Control Machine Tools .........26
Initialization........................................... 62
O
International Federation of Robotics .... 17 IR receiver............................................ 173
Obstacle Avoidance ............. 148, 149, 236
J
Odor Source Localization............... 54, 240 Offset Servo ......................................... 173
Joint states .................................. 212, 214
On Demand Protocol ...........................102 Open Dynamic Engine... 61, 62, 63, 67, 68, 70, 71, 74, 75, 76, 77, 79
L P
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
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
LVQ ...................................................... 133
Pitch.....................................................113 Pixel ............................. 116, 135, 136, 137
M
Point-to-point ........................................ 91 Position By Line. 57, 58, 59, 60, 61, 69, 75,
Mac...................................................... 202 MANET..................100, 101, 102, 237, 239
77, 78, 89, 96, 97 Preprocessing ...................................... 129
Microsoft Kinect .................. 177, 201, 202 Minimum Spanning Tree ........... 59, 75, 77
Prim ....................................................... 77 Proactive Protocol ...............................102
244
Proximity ............................. 143, 146, 148
Single object.........................................130
PSO .................81, 82, 89, 94, 95, 239, 241 Puller ................................................... 113
Sink ...60, 61, 72, 77, 78, 79, 80, 89, 95, 97 Skeleton Tracking.................................212
Pusher.................................................. 113
Software. 92, 115, 170, 179, 200, 202, 228 Source
Q
routing ............................................103 Tree Adaptive Routing ....................102
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
Spanning Tree ......................................104 Speed Rate...........................................181 Substructure ........................................237 Swarm intelligence...............................237
Quadratic Optical Encoder .................... 83 Quartenion matrix ................................. 68
T
R
Table-driven.........................................102 Take off ................................................114
Range............................................. 72, 100
Target.....57, 59, 60, 61, 67, 70, 71, 72, 74, 75, 77, 78, 79, 80, 89, 91, 96, 149, 150,
Reactive protocol................................. 102 Real Time Operating System ................. 89 Received Signal Strength Indicator 85, 240
Receiver......................................... 85, 174
159 Threshold................................... 60, 77, 82 Throughput ..........................................101
Remote control.................................... 107 Repeat time ......................................... 181
Transceiver...................................144, 145
Roboplus ...................... 179, 180, 181, 182
U
Roboplus Manager .............................. 180 Robot Arm ....................................... 26, 27
UART ...................................... 92, 175, 190
Robot Humanoid ................................. 170 Robot Operating System ............. 136, 176
Ultrasonic Range Sensor ......................111 Unidirectional ......................................101
Roll................................................. 68, 113 ROS ......127, 136, 176, 177, 178, 179, 202,
Unified robot description file...............213 Unimate .................................................23
203, 212, 218, 228
Universal Asynchronous Receiver
ROS electric ......................................... 202
/Transmitter....................................190
Route Table Management................... 240 Router.......................................... 101, 103
Unmanned Aerial Vehicle . 5, 49, 107, 235, 236, 241
Routing ...79, 100, 102, 103, 104, 237, 239 Routing protocol.................................. 102
URDF ....................................................213 User......................................................149
RSSI.......................................... 85, 95, 240
V S Script ............143, 144, 145, 146, 147, 149
Velocity Vector.......................................81 Vertex ....................................................76
Self -configured ..................................... 100
Virtual Robot Experimentation Platform....142
Sensing .................................................. 57 Sensor proximity ......................... 146, 148
V-REP .. 142, 143, 144, 145, 146, 147, 149, 150, 152, 164, 166
servo motor......................................... 180 Signal ................................... 144, 145, 248
W
Stability-based Adaptive Routing.... 102 Simulation loop ..................................... 62
Windows..............................................202
245
Wireless connection........................................ 79 Routing Protocol............................. 102
X X-Bee........................ 84, 87, 91, 92, 93, 95
sensor ............................................... 84 sensor network ................................. 84
Z
transmission ................................... 144 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:
[email protected] 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:
[email protected] 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:
[email protected] 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:
[email protected] 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:
[email protected] 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:
[email protected] 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:
[email protected] 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:
[email protected] 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:
[email protected] Interest: Artificial Intelligence Quote: no need to panic
Nama : M Anwar Ma’sum TTL: Nganjuk, 21 November 1990 Pekerjaan: Asisten Riset Institusi: Fakultas Ilmu Komputer, Universitas Indonesia Email:
[email protected] 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:
[email protected] 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 :
[email protected] Interest: Robotics, Embedded System Quote : two things define you. your patience when you
have nothing And your attitude when you have everything
252