KOORDINASI GERAK DAN NAVIGASI HEXAPOD DENGAN ALGORITME TRIPOD GAIT, WALL FOLLOWING, DAN LOGIKA FUZZY
SODIK KIRONO
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2014
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Koordinasi Gerak dan Navigasi Hexapod dengan Algoritme Tripod gait, Wall Following, dan Logika Fuzzy adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, Juli 2014
Sodik Kirono NIM G64100002
ABSTRAK SODIK KIRONO. Koordinasi Gerak dan Navigasi Hexapod dengan Algoritme Tripod gait, Wall Following, dan Logika Fuzzy. Dibimbing oleh KARLISA PRIANDANA dan HERU SUKOCO. Robot adalah alat yang dapat berinteraksi dengan lingkungannya dan melakukan fungsi tertentu sesuai dengan program yang ditanamkan kepadanya. Untuk dapat berfungsi dengan baik, robot perlu berinteraksi dengan lingkungannya (sense), memproses informasi tersebut (think), dan memberikan respons (act). Penelitian ini bertujuan untuk mengintegrasikan ketiga fungsi utama tersebut pada robot hexapod pemadam api. Masukan dari lingkungan diperoleh dari sensor jarak. Masukan ini kemudian diproses dengan algoritme navigasi wallfollowing dan logika fuzzy untuk menentukan arah atau sudut gerak robot. Sudut gerak robot kemudian diimplementasikan menjadi koordinasi gerakan kaki-kaki robot dengan algoritme tripod gait. Penelitian ini telah berhasil mengintegrasikan algoritme akusisi data dari sensor (sense), sistem navigasi wall-following dan logika fuzzy (think), dan sistem koordinasi kaki dengan tripod gait (respon). Robot telah diuji pada lingkungan sesuai dengan ketentuan KRPAI 2014 dan robot berhasil bergerak tanpa menabrak dinding. Kata kunci: hexapod, navigasi, robot, sensor
ABSTRACT SODIK KIRONO. Hexapod Movement Coordination and Navigation using Tripod gait, Wall Following, and Fuzzy Logic Algorithms. Supervised by KARLISA PRIANDANA and HERU SUKOCO. Robot is a tool that can interact with its environment and perform certain functions in accordance with a program that is embedded in it. To function properly, the robot needs to interact with its environment (sense), process the information (think), and give some responses (act). This study aims to integrate the three major functions in an hexapod fire-fighting robot. Input from the environment is obtained from range sensor. These inputs are then processed with a wall-following navigation algorithms and fuzzy logic to determine the direction or angle of motion. This angle is then implemented by the robot’s legs into some movement coordination by using tripod gait algorithm. This study has successfully integrate the algorithm of sensor data acquisition (sense), wallfollowing and fuzzy logic navigation system (think), and tripod gait coodination system (respon). The robot was tested in an environment in accordance with the provisions of KRPAI 2014, and it can move without hitting against the wall. Keywords: hexapod, navigation, robot, sensor
KOORDINASI GERAK DAN NAVIGASI HEXAPOD DENGAN ALGORITME TRIPOD GAIT, WALL FOLLOWING, DAN LOGIKA FUZZY
SODIK KIRONO
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2014
Penguji : Ir Sri Wahjuni, MT
Judul Skripsi : Koordinasi Gerak dan Navigasi Hexapod dengan Algoritme Tripod gait, Wall Following, dan Logika Fuzzy Nama : Sodik Kirono NIM : G64100002
Disetujui oleh
Karlisa Priandana, ST MEng Pembimbing I
DrEng Heru Sukoco, SSi MT Pembimbing II
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
Tanggal Lulus:
PRAKATA Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Judul penelitian yang dilaksanakan sejak bulan November 2013 ini ialah Koordinasi Gerak Dan Navigasi Hexapod dengan Algoritme Tripod gait, Wall Following, dan Logika Fuzzy. Terima kasih penulis ucapkan kepada Ibu Karlisa Priandana, ST MEng dan Bapak DrEng Heru Sukoco, SSi MT selaku komisi pembimbing. Ucapan terima kasih juga kepada bapak, ibu dan seluruh keluarga, atas segala doa dan dukungannya, serta kepada teman-teman Ilmu Komputer 47 dan semua pihak yang terkait langsung maupun tidak atas dukungannya selama penelitian ini dilakukan. Semoga karya ilmiah ini bermanfaat.
Bogor, Juli 2014 Sodik Kirono
DAFTAR ISI DAFTAR TABEL
xi
DAFTAR GAMBAR
xi
DAFTAR LAMPIRAN
xi
PENDAHULUAN
1
Latar Belakang
1
Perumusan Masalah
2
Tujuan Penelitian
2
Manfaat Penelitian
2
Ruang Lingkup Penelitian
2
METODE PENELITIAN
2
Studi Literatur
3
Persiapan Alat dan Bahan
3
Perakitan Robot dan Peripheral
3
Implementasi dan Penggabungan Algoritme pada Robot
4
Pengambilan Data dari Sensor Jarak
4
Navigasi dengan Algoritme Wall Following dan Logika Fuzzy
5
Konversi Sudut Belok Robot ke Lebar Pulsa
5
Koordinasi gerak kaki dengan algoritme tripod gait
5
Pengujian
6
Pengujian masing-masing algoritme
6
Pengujian integrasi algoritme
6
Evaluasi
7
HASIL DAN PEMBAHASAN
7
Persiapan Alat dan Bahan
7
Perakitan Robot dan Peripheral
8
Implementasi dan Penggabungan Algoritme pada Robot
9
Pengambilan Data dari Sensor Jarak
9
Navigasi dengan Algoritme Wall Following dan Logika Fuzzy
9
Konversi Sudut Putar Menjadi Nilai Lebar Pulsa
14
Koordinasi Gerak dengan Tripod Gait
14
Pengujian
16
Pengujian pada Masing-Masing Algoritme
16
Pengujian Integrasi Algoritme
17
Evaluasi
18
SIMPULAN DAN SARAN
18
Simpulan
18
Saran
18
DAFTAR PUSTAKA
19
DAFTAR TABEL 1 2 3 4 5 6
Aturan fuzzy untuk right dan left wall following 12 Perbandingan waktu komputasi algoritme tripod gait tanpa fuzzy dan dengan fuzzy16 Hasil pengujian algoritme akusisi data sensor 16 Hasil pengujian algoritme navigasi 17 Hasil pengujian algoritme koordinasi gerak kaki 17 Hasil pengujian integrasi algoritme pada konfigurasi ruangan KRPAI 2014 17
DAFTAR GAMBAR 1 2 3 4 5 6 7 8 9 10
Alur penelitian 3 Konfigurasi sensor jarak 4 Proses penggabungan algoritme 4 Konfigurasi KRPAI 2014 6 (a) Robot Hexapod (b) SPC servo controller (c) Sensor Jarak HC-SR04 dan (d) Mikrokontroler Arduino UNO 7 8 Perakitan sensor jarak Track Robot 8 Fungsi keanggotaan sensor (a) depan, (b) samping, dan (c) serong 11 Fungsi keanggotaan keluaran 13 15 Konfigurasi servo pada kaki
DAFTAR LAMPIRAN 1 Algoritme navigasi dengan wall following dan logika fuzzy 2 Contoh Perhitungan Logika Fuzzy 3 Algoritme tripod gait untuk gerak maju, belok kiri, dan belok kanan 4 Algoritme koordinasi gerak dengan tripod gait
20 21 23 24
PENDAHULUAN Latar Belakang Robot adalah suatu alat multifungsi yang dapat bergerak pada suatu lingkungan dengan kemampuan tertentu disesuaikan dengan tugasnya (Carelli dan Freire 2003). Gerak robot dideskripsikan oleh pose, kecepatan, akselerasi, dan turunan dari pose badan robot yang menghasilkan gerak (Siciliano dan Khatib 2008). Robot berkaki dibedakan menjadi dua macam berdasarkan kestabilannya yaitu kestabilan statis dan kestabilan dinamis. Robot berkaki dengan kestabilan dinamis artinya bahwa titik berat robot dapat berpindah untuk menjaga kestabilan dan keseimbangan ketika robot bergerak, dan yang termasuk dalam jenis ini adalah robot berkaki satu sampai empat. Sedangkan robot dengan kestabilan statis adalah robot yang titik beratnya tetap stabil dan tidak berpindah ketika bergerak, dan yang termasuk dalam jenis ini adalah robot dengan jumlah kaki minimal 4 buah, seperti hexapod dan octopod (Thirion dan Thiry 2002). Hexapod adalah robot berkaki enam sehingga memiliki ragam gerakan yang bervariasi. Kompleksitas gerakan kaki juga menjadi tinggi sehingga diperlukan algoritme pergerakan kaki yang sesuai dengan kondisi lingkungannya (Thirion dan Thiry 2002). Robot cerdas melakukan tugasnya berdasarkan program kecerdasan buatan yang ditanamkan padanya. Salah satu kecerdasan yang dibutuhkan robot adalah kemampuan untuk melakukan navigasi. Kemampuan navigasi dapat dikaitkan dengan kemampuan sensor untuk menerima masukan dari lingkungan (Carelli dan Freire 2003). Masukan dari lingkungan merupakan sesuatu yang tidak pasti sehingga memerlukan pemodelan yang dapat mengatasinya. Logika fuzzy dapat menjadi pilihan untuk menangani ketidakpastian (Peri 2002). Penelitian terkait yang telah dilaksanakan yaitu analisis dan penerapan sensor jarak, sensor deteksi api, dan sensor garis pada fire fighting robot oleh Sidik (2013). Penelitian tersebut telah berhasil mengimplementasikan sensor jarak, sensor deteksi api, dan sensor garis pada fire fighting robot dengan mengembangkan algoritme akusisi data sensor. Selain itu, Chriswantoro (2013) telah melakukan penelitian untuk mengembangkan sistem navigasi menggunakan wall following dan logika fuzzy. Penelitian telah berhasil mengembangkan sistem navigasi menggunakan wall following dan logika fuzzy dan telah berhasil menyelesaikan misi pada lintasan KRPAI (Kontes Robot Pemadam Api Indonesia). Wulandari (2013) telah mengembangkan penelitian untuk implementasi tripod gait dan inverse kinematics untuk koordinasi gerak robot berkaki enam. Penelitian tersebut telah berhasil mengimplementasikan algoritme tripod gait dan inverse kinematics pada hexapod dengan masukan berupa nilai lebar pulsa yang telah dihitung sebelumnya. Namun algoritme-algoritme yang telah dikembangkan tersebut belum terintegrasi. Penelitian ini bertujuan untuk mengintegrasikan algoritme tripod gait dalam mengatur koordinasi gerak kaki hexapod dari masukan sensor jarak yang telah diolah dengan sistem navigasi menggunakan algoritme wall following dan logika fuzzy.
2 Perumusan Masalah Robot dengan jumlah kaki banyak, contohnya hexapod, memerlukan algoritme untuk mengatur koordinasi gerak kakinya. Salah satunya yaitu tripod gait. Selain itu koordinasi kaki, robot berkaki enam juga memerlukan sistem navigasi untuk menyelesaikan tugasnya. Implementasi sistem navigasi akan dilakukan dengan menggunakan algoritme wall following dan logika fuzzy dengan masukan dari sensor jarak untuk menentukan sudut perputaran/ belok robot. Algoritme-algoritme tersebut masing-masing sudah dikembangkan pada penelitian sebelumnya, namun belum terintegrasi. Tujuan Penelitian Tujuan dari penelitian ini adalah mengintegrasikan algoritme pengambilan data dari sensor jarak, algoritme pengolahan data sensor dengan algoritme wall following dan logika fuzzy serta algoritme tripod gait sebagai pengatur koordinasi gerak kaki sehingga robot dapat bergerak menyusuri ruangan dengan mengikuti konfigurasi dinding sesuai ketentuan KRPAI 2014. Manfaat Penelitian Manfaat yang diharapkan dalam penelitian ini adalah mendukung pengembangan smart multi-legged robots di Indonesia. Ruang Lingkup Penelitian • • • •
Ruang lingkup dari penelitian ini adalah: Implementasi dilakukan pada robot hexapod yang sudah dirakit pada penelitian sebelumnya. Algoritme kecerdasan yang sudah terintegrasi yang dikembangkan akan diterapkan pada robot berkaki enam berukuran 40 × 30 × 27 cm. Sistem navigasi yang diujikan dalam penelitian ini hanya sebatas gerak untuk menyusuri dinding lintasan sesuai dengan ketentuan KRPAI 2014 untuk konfigurasi ruang 4. Masukan yang akan diproses oleh sistem navigasi hanya berasal dari sensor jarak.
METODE PENELITIAN Alur penelitian dapat dilihat pada Gambar 1. Penelitian dimulai dengan studi literatur. Selanjutnya dilakukan persiapan alat dan bahan serta perakitan robot dan peripheral. Penelitian dilanjutkan dengan tahap implementasi dan penggabungan algoritme. Tahap pengujian dilakukan untuk mengetahui hasilnya, dan selanjutnya
3
Gambar 1 Alur penelitian dilakukan evaluasi untuk mengetahui penyebab keberhasilan atau kegagalan dalam tahap implementasi dan penggabungan algoritme.
Studi Literatur Tahap studi literatur dilakukan untuk mempelajari datasheet komponen yang digunakan dan algoritme yang akan digunakan.
Persiapan Alat dan Bahan Komponen-komponen yang harus dipersiapkan adalah robot hexapod, sensor jarak, dan track robot. Robot hexapod yang digunakan adalah hasil perakitan dari penelitian sebelumnya oleh Wulandari (2013). Robot hexapod yang digunakan memiliki 12 buah servo HS645MG, 6 buah servo HS225BB, 1 buah SPC servo controller, 1 buah mikrokontroler Arduino UNO, baterai 9 V, baterai LiPo 7.4 V dan 5.1 V Regulator. Sensor jarak yang akan digunakan adalah HC-SR04. HC-SR04 menggunakan gelombang ultrasonik dalam mengukur jarak antara robot dan dinding. Masing-masing sensor jarak tersebut memerlukan daya 5V. Track robot digunakan sebagai lintasan robot dan akan dibuat dari kayu (untuk dinding dan lintasan), karpet (untuk pelapis pada sebagian lintasan), dan lakban putih (untuk penanda ruangan dan perekat alas). Track robot akan dibuat sesuai ketentuan KRPAI 2014.
Perakitan Robot dan Peripheral Tahap perakitan robot dan peripheral dilakukan untuk menambah komponen yang belum ada pada penelitian sebelumnya, seperti perakitan sensor jarak. Selain itu, pada tahap ini dilakukan juga pemeriksaan terhadap fungsi dari masing-masing komponen. Sensor jarak akan dipasang melingkar pada 5 posisi yaitu depan, serong kanan, serong kiri, samping kanan, dan samping kiri dengan konfigurasi seperti pada Gambar 2 (Chriswantoro 2013).
4
Gambar 2 Konfigurasi sensor jarak
Implementasi dan Penggabungan Algoritme pada Robot Pada tahap implementasi terdapat 3 algoritme yang akan diintegrasikan yaitu pengambilan data dari sensor jarak, navigasi dengan wall following dan logika fuzzy, dan koordinasi gerak kaki dengan tripod gait. Ketiga algoritme akan diintegrasikan untuk mengatur navigasi dan koordinasi pada robot hexapod sehingga robot dapat menyusuri dinding sesuai konfigurasi ruangan yang ada. Proses penggabungan algoritme dapat dilihat pada Gambar 3, dengan penjelasan sebagai berikut :
Gambar 3 Proses penggabungan algoritme Pengambilan Data dari Sensor Jarak Penelitian ini akan menggunakan masukan dari lima buah sensor jarak. Sensor depan akan digunakan untuk mengukur jarak robot dengan dinding di
5 depannya. Sensor serong akan digunakan untuk mengukur jarak robot dengan dinding di serong kiri dan kanan. Sensor samping digunakan untuk mengukur jarak antara robot dengan dinding di samping kiri dan kanan. Algoritme untuk pengambilan data dari sensor akan menggunakan kode program yang sudah dikembangkan pada penelitian sebelumnya oleh Sidik (2013). Keluaran algoritme ini berupa jarak kelima sensor dengan dinding. Informasiinformasi ini akan menjadi data masukan untuk algoritme navigasi robot. Navigasi dengan Algoritme Wall Following dan Logika Fuzzy Data jarak dari sensor yang diterima Arduino UNO akan digunakan sebagai masukan bagi navigasi robot yang menggunakan algoritme wall following dan logika fuzzy. Untuk variabel sensor samping dan serong yang aktif ditentukan oleh tipe wall following yang sedang dipakai. Apabila menggunakan right wall following, maka sensor samping dan sensor serong yang dimaksud ialah sensor samping kanan dan serong kanan. Apabila menggunakan left wall following, maka sensor samping dan sensor serong yang dimaksud ialah sensor samping kiri dan serong kiri. Navigasi yang digunakan pada robot adalah hasil penelitian sebelumnya oleh Chriswantoro (2013). Keluaran dari algoritme ini adalah besar sudut belok robot. Konversi Sudut Belok Robot ke Lebar Pulsa Keluaran dari algoritme navigasi dengan wall following dan logika fuzzy adalah sudut belok robot yang menentukan derajat perputaran. Sedangkan masukan dari algoritme koordinasi yang akan digunakan yaitu tripod gait adalah lebar pulsa. Lebar pulsa menentukan pergerakan dari setiap servo. Lebar pulsa didapatkan dengan cara mengubah sudut belok robot ke lebar pulsa. Hubungan antara lebar pulsa dengan sudut servo yang diinginkan dapat dilihat pada persamaan 1 (RCToys 2001). Lebar pulsa=(10*sudut servo) + 600
(1)
Koordinasi gerak kaki dengan algoritme tripod gait Sudut belok robot menjadi masukan bagi algoritme koordinasi gerak kaki yaitu tripod gait. Dalam tripod gait, sebuah tripod terdiri dari kaki depan dan belakang pada satu sisi dan kaki tengah pada sisi lainnya. Untuk masing-masing tripod, kaki-kaki tersebut akan terangkat, bergerak maju atau mundur, dan turun kembali. Algoritme koordinasi gerak dengan tripod gait yang digunakan adalah algoritme yang telah dikembangkan oleh Wulandari (2013). Masukan yang diharapkan adalah lebar pulsa yang akan digunakan untuk menentukan besar pergerakan servo.
6 Pengujian Pengujian masing-masing algoritme Pengujian algoritme dilakukan untuk melihat kesesuaian proses integrasi algoritme terhadap kondisi yang diinginkan. Pengujian pada penelitian ini akan dilakukan dengan tiga tahap, yaitu pengujian tahap satu pada algoritme akusisi data sensor jarak, pengujian tahap dua pada algoritme navigasi, dan pengujian tahap tiga pada algoritme koordinasi. Pengujian tahap satu dilakukan dengan cara melihat keluaran jarak pada serial monitor Arduino. Keluaran tersebut dibandingkan dengan hasil pengukuran jarak sebenarnya dengan penggaris/ mistar. Kedua hasil tersebut akan dibandingkan untuk menentukan keberhasilan akusisi data sensor jarak (Sidik 2013). Pengujian tahap dua dilakukan dengan cara melihat keluaran sudut belok pada serial monitor. Keluaran tersebut dibandingkan dengan hasil perhitungan manual dengan memasukkan pada fungsi keanggotaan fuzzifikasi dan defuzzifikasi yang ada. Keberhasilan proses integrasi dilihat dari keluaran sudut belok robot dari jarak yang dimasukkan (Chriswantoro 2013). Pengujian tahap tiga dilakukan dengan cara melihat besar perputaran robot dari posisi semula. Posisi ini akan dibandingkan dengan sudut putar seharusnya berdasarkan keluaran sudut belok dari algoritme navigasi. Pengukuran sudut sebenarnya dilakukan dengan busur derajat. Keberhasilan proses integrasi dengan melihat kesesuaian antara perputaran robot dan perputaran seharusnya (Wulandari 2013). Pengujian integrasi algoritme Pengujian integrasi dan kinerja robot akan dilakukan pada track robot. Konfigurasi ruangan track robot disesuaikan dengan ketentuan dari KRPAI 2014, dapat dilihat pada Gambar 4. Kinerja robot diuji sesuai dengan konfigurasi ruangan 4. Robot dinyalakan dan ditempatkan pada posisi tertentu dalam ruangan, kemudian robot dibiarkan menyusuri ruangan. Ketepatan menyusuri ruangan dan tidak menabrak dinding akan menjadi indikator keberhasilan pengujian.
Gambar 4 Konfigurasi KRPAI 2014
7 Evaluasi Evaluasi dilakukan untuk menganalisis penyebab kegagalan yang terjadi pada tahap pengujian. Keluaran dari tahap ini berupa saran-saran perbaikan yang dapat dilakukan pada penelitian selanjutnya.
HASIL DAN PEMBAHASAN Persiapan Alat dan Bahan • • • • • • • • •
Alat dan bahan yang digunakan pada penelitian ini adalah: Robot hexapod hasil perakitan sebelumnya oleh Wulandari (2013) (Gambar 5a), 1 buah SPC servo controller (Gambar 5b), 5 buah sensor jarak ultrasonik HC-SR04 (Gambar 5c), 1 buah Arduino UNO (Gambar 5d), 3 baterai 9 V, baterai LiPo 7.4 V elco 0.1 μF dan 0.33 μF, regulator 7805, dan perangkat lunak yang digunakan adalah Arduino dan menggunakan bahasa pemrograman C.
Sumber : Wulandari (2013) (a)
Sumber : www.parallax.com (c)
Sumber : http://www.centralelectro.com (b)
Sumber : arduino.cc (d)
Gambar 5 (a) Robot Hexapod (b) SPC servo controller (c) Sensor Jarak HC-SR04 dan (d) Mikrokontroler Arduino UNO
8 Perakitan Robot dan Peripheral Robot hexapod yang digunakan pada penelitian ini adalah hasil perancangan dan perakitan penelitian sebelumnya oleh Wulandari (2013). Beberapa komponen yang dipasangkan ke robot sehingga robot dapat menjalankan fungsinya adalah Arduino, SPC Servo Controller, sensor jarak, baterai 9 V, dan baterai Lipo 7.4 V. Arduino dipasangkan pada robot sebagai otak robot yang digunakan untuk memasukkan kode program yang dibuat untuk akusisi data sensor, navigasi dan koordinasi robot. Selain itu, arduino juga digunakan untuk menggerakkkan servo pada kaki robot. Namun, arduino hanya mampu menampung maksimal 10 buah servo, sedangkan servo untuk kaki robot terdapat 18 buah sehingga harus dipasangkan SPC Servo Controller yang maksimum dapat menampung 20 servo. Robot yang telah dirakit akan dihubungkan ke power supply, yaitu baterai 9 V dan Lipo 7.4 V. Baterai 9 V digunakan untuk memberikan daya pada Arduino dan SPC Servo Controller, sedangkan baterai Lipo 7.4 V digunakan untuk memberikan daya pada kedelapan belas servo pada kaki-kaki robot. Selain itu, baterai 9 V juga digunakan untuk memberikan daya pada sensor jarak. Namun karena tegangan yang dibutuhkan oleh sensor jarak hanya lima volt, maka dilakukan proses konversi sehingga tegangan keluaran menjadi 5 V dengan menggunakan regulator 7805. Sensor jarak dipasangkan melingkar pada robot seperti pada Gambar 6. Sensor pertama dipasang menghadap depan robot. Hal ini dilakukan agar robot tidak menabrak dinding depannya. Sensor kedua dan ketiga dipasang menghadap serong kanan dan kiri robot. Hal ini dilakukan agar robot tidak menabrak bagian serong kanan dan kirinya. Sensor keempat dan kelima dipasang menghadap samping kanan dan kiri. Hal ini dilakukan agar robot dapat mendeteksi jarak samping kanan dan kiri sehingga robot tidak menabrak dinding kanan dan kirinya. Lima sensor yang dipasang tersebut akan memancarkan gelombang ultrasonik secara bersamaan yang nanti akan dipantulkan oleh dinding dan kembali ditangkap oleh sensor. Delay time antara memancarkan dan menerima gelombang inilah yang digunakan untuk menghitung jarak robot dan dinding dengan membagi dengan koefisien tertentu sesuai penelitian Sidik (2013). Setelah komponen-komponen yang dibutuhkan robot untuk melakukan
Gambar 7 Track robot
Gambar 6 Perakitan sensor jarak
9 gerakan menyusuri dinding dipasangkan, selanjutnya dilakukan pembuatan track robot. Track robot dirancang sesuai ketentuan dari KRPAI 2014 (Gambar 7).
Implementasi dan Penggabungan Algoritme pada Robot Pengambilan Data dari Sensor Jarak Data dari kelima sensor jarak diakusisi dengan algoritme akuisisi data. Algoritme ini mengolah masukan dari sensor menjadi informasi sesuai yang dibutuhkan, yaitu informasi jarak. Algoritme akusisi data yang digunakan adalah hasil penelitian oleh Sidik (2013). Keluaran dari algoritme ini adalah jarak antara robot dengan dinding. Jarak antara robot dan dinding yang didapatkan menjadi masukan bagi algoritme navigasi dengan wall following dan logika fuzzy. Proses pengambilan data sensor jarak menggunakan delay time 1 detik. Delay 1 detik diberikan dengan pertimbangan perlu adanya ketepatan data sensor jarak yang digunakan untuk menggerakkan kaki-kaki. Tidak adanya delay (delay 0 detik) akan mengakibatkan jarak yang digunakan untuk memandu gerak adalah jarak sebelumnya, bukan jarak pada saat robot seharusnya bergerak. Namun menggunakan delay time yang terlalu lama (delay 2 detik) juga mengakibatkan robot menjadi kurang responsif. Navigasi dengan Algoritme Wall Following dan Logika Fuzzy Navigasi pada robot menerima masukan dari algoritme akuisisi data berupa nilai jarak. Dari lima buah sensor jarak yang ada, hanya tiga buah sensor yang digunakan untuk menentukan navigasi menyusuri dinding, tergantung dari tipe wall following yang digunakan. Secara default, tipe wall following yang digunakan adalah right wall following. Sensor-sensor yang digunakan saat right wall following adalah sensor depan, sensor serong kanan, dan sensor samping kanan. Sedangkan pada kondisi tertentu, maka tipe wall following yang dipakai akan berganti menjadi left wall following. Sensor yang digunakan pada left wall following adalah sensor depan, sensor serong kiri, dan sensor samping kanan. Nilai ketiga sensor diproses dengan aturan fuzzy. Berikut adalah potongan program yang ditambahkan pada algoritme wall following dari hasil penelitian Chriswantoro (2013) untuk menentukan tipe wall following yang digunakan. if(aturan == 0) //right wall following { samping.data = cmE; //jarak samping adalah sensor E serong.data = cmD; //jarak serong adalah sensor D depan.data = cmC; //jarak depan adalah sensor C } else if(aturan == 1) //left wall following { samping.data = cmA; //jarak samping adalah sensor A serong.data = cmB; //jarak serong adalah B depan.data = cmC; //jarak depan adalah C }
10 Jika nilai variabel aturan adalah 0 maka tipe yang navigasi yang dipakai adalah right wall following. Sensor jarak yang digunakan ketika right wall following adalah sensor depan, sensor serong kanan, sensor serong kiri. Sedangkan jika nilai variabel aturan = 1 maka tipe navigasi yang dipakai adalah left wall following. Sensor jarak yang dipakai ketika left wall following adalah sensor depan, sensor serong kiri, dan sensor samping kanan. Tipe navigasi ini akan menentukan proses evaluasi aturan yang dibentuk dari proses fuzzifikasi. Nilai variabel 0 atau 1 didapatkan dari jumlah ruangan yang dikunjungi. Jika jumlah ruangan yang dikunjungi belum mencapai 3 maka nilai variabel aturan adalah 0. Sedangkan jika jumlah ruangan yang dikunjungi sudah mencapai 3 maka nilai variabel aturan akan diubah menjadi 1. Untuk menentukan jumlah ruangan yang dikunjungi dibutuhkan informasi dari sensor garis dan sensor api. Hal tersebut tidak tercakup dalam ruang lingkup penelitian ini. Masing-masing jarak dari sensor akan masuk ke dalam proses fuzzifikasi. Proses fuzzifikasi digunakan untuk menentukan besar derajat keanggotan nilai jarak terhadap fungsi keanggotaan masing-masing sensor. Fungsi keanggotaan akan memproses data jarak masing-masing sensor untuk mengeluarkan keluaran sudut. Batas-batas fungsi keanggotaan sensor serong dan sensor samping diubah berdasarkan hasil percobaan. Fungsi keanggotaan sensor dapat dilihat pada Gambar 8. Batas-batas fungsi keanggotaan masing-masing sensor diubah sehingga robot tidak menabrak dinding ketika menyusuri ruangan. Pengubahan batas dilakukan karena Chriswantoro (2013) pada penelitian sebelumnya menganggap robot sebagai titik sehingga jarak yang yang ditetapkan adalah jarak titik ke dinding. Sedangkan pada keadaan sebenarnya, robot berkaki mempunyai kaki yang dapat bergerak melebar dan menyempit. Pelebaran kaki menyebabkan robot membutuhkan ruang lebih untuk bergerak. Oleh karena itu, diperlukan pengubahan pada batas masing-masing fungsi keanggotaan sensor. Untuk menentukan derajat keanggotaan masing-masing sensor, grafik derajat fungsi keanggotaan fuzzy masing-masing sensor pada Gambar 8 dapat ditransformasikan ke bentuk formula. Formula untuk menghitung derajat keanggotaan sensor depan adalah seperti pada persamaan 2. 1, x ≤ 17 μdep_dekat(x) = �25 - x , 17 ≤ x ≤ 25� 8
0, x ≥ 25
0, x ≤ 17 μdep_jauh(x) = �x - 17 , 17 ≤ x ≤ 25� 8
1, x ≥ 25
(2)
11
(a)
(b)
(c) Gambar 8 Fungsi keanggotaan sensor (a) depan, (b) samping, dan (c) serong dengan x adalah nilai anggota, µdep_dekat(x) adalah derajat keanggotaan dekat dan µdep_jauh(x) adalah derajat keanggotaan jauh pada sensor samping. Formula matematika untuk sensor samping adalah seperti pada persamaan 3. 1, x ≤ 12 μsam_dekat(x) = �20 - x , 12 ≤ x ≤ 20� 8
0, x ≥ 20
0, x ≤ 20 μsam_jauh(x) = �x - 20 , 20 ≤ x ≤ 28� 8
1, x ≥ 28
μsam_sedang(x) =
0, x ≤ 12 ⎧ x - 12 ⎫ ⎪ , 12 ≤ x ≤ 20 ⎪ 8 28⎨ x
⎪ ⎩
8
, 20 ≤ x ≤ 28⎬ ⎪ ⎭ 0, x ≥ 28
(3)
dengan x adalah nilai anggota, µsam_dekat(x) adalah derajat keanggotaan dekat, µsam_sedang(x) adalah derajat keanggotaan sedang, dan µsam_jauh(x) adalah derajat keanggotaan jauh pada sensor samping. Formula matematika untuk sensor samping adalah seperti pada persamaan 4.
12 1, x ≤ 12 μser_dekat(x) = �20 - x , 12 ≤ x ≤ 20� 8
μser_sedang(x) =
0, x ≥ 20
8 28⎨ x
⎪ ⎩
0, x ≤ 20 μser_jauh(x) = �x - 20 , 20 ≤ x ≤ 28� 8
0, x ≤ 12 ⎧ x - 12 ⎫ ⎪ , 12 ≤ x ≤ 20 ⎪ 8
, 20 ≤ x ≤ 28⎬ ⎪ ⎭ 0, x ≥ 28
(4)
1, x ≥ 28
dengan x adalah nilai anggota, µser_dekat(x) adalah derajat keanggotaan dekat, µser_sedang(x) adalah derajat keanggotaan sedang, dan µser_jauh(x) adalah derajat keanggotaan jauh pada sensor serong. Keluaran dari masing-masing fungsi keanggotaan adalah derajat keanggotaan masing-masing sensor. Derajat keanggotaan masing-masing sensor akan dievaluasi dengan aturan fuzzy pada Tabel 1 (Chriswantoro 2013). Tabel 1 Aturan fuzzy untuk right dan left wall following Masukan sensor Samping Serong 1 Dekat Dekat 2 Dekat Dekat 3 Dekat Sedang 4 Dekat Sedang 5 Dekat Jauh 6 Dekat Jauh 7 Sedang Dekat 8 Sedang Dekat 9 Sedang Sedang 10 Sedang Sedang 11 Sedang Jauh 12 Sedang Jauh 13 Jauh Dekat 14 Jauh Dekat 15 Jauh Sedang 16 Jauh Sedang 17 Jauh Jauh 18 Jauh Jauh Sumber : Chriswantoro (2013) No
Depan Dekat Jauh Dekat Jauh Dekat Jauh Dekat Jauh Dekat Jauh Dekat Jauh Dekat Jauh Dekat Jauh Dekat Jauh
Keluaran wall following Right Left Kiri1 Kanan1 Kiri0 Kanan0 Kiri0 Kanan0 Maju Maju Kiri0 Kanan0 Kiri0 Kanan0 Kiri1 Kanan1 Kiri0 Kanan0 Kiri0 Kanan0 Maju Maju Kiri1 Kanan1 Maju Maju Kiri1 Kanan1 Kiri0 Kanan0 Maju Maju Maju Maju Kanan1 Kiri1 Kanan0 Kiri0
Nilai fuzzy hasil evaluasi aturan adalah nilai fuzzy untuk keluaran yang merupakan nilai minimum dari masing-masing fungsi keanggotaan. Untuk mendapatkan nilai aturan yang bersifat diskret, maka diperlukan fungsi keanggotaan output. Fungsi keanggotaan yang digunakan untuk output hanya satu
13
Sumber : Chriswantoro (2013) Gambar 9 Fungsi keanggotaan keluaran variabel dengan 5 anggota, yaitu kiri0, kiri1, kanan0, kanan1, dan maju. Selengkapnya dapat dilihat pada Gambar 9 (Chriswantoro 2013). Fungsi keanggotaan keluaran akan mengevaluasi setiap aturan fuzzy yang tercakup. Fungsi keanggotaan output akan menentukan besar derajat perputaran robot. Untuk mempermudah dalam menentukan nilai deffuzifikasi, maka Gambar 9 dapat ditransformasi menjadi formula seperti pada persamaan 5 (Chriswantoro 2013). 0, x ≤ -90 ⎧ x + 90 ⎫ ⎪ , -90 ≤ x ≤ -60 ⎪ 30 μkiri1(x) = -x ⎨ - 30 , -60 ≤ x ≤ -30⎬ ⎪ 30 ⎪ ⎩ ⎭ 0, x ≥ -30 0, x ≤ -15 ⎧x + 15 ⎫ ⎪ , -15 ≤ x ≤ 0⎪ 15 μmaju(x) = ⎨ 15 - x , 0 ≤ x ≤ 15 ⎬ ⎪ 15 ⎪ ⎩ ⎭ 0, x ≥ 15
μkanan1(x) =
0, x ≤ 30 ⎧x - 30 ⎫ ⎪ , 30 ≤ x ≤ 60⎪ 30 90 ⎨ -x
⎪ ⎩
30
, 60 ≤ x ≤ 90⎬ ⎪ ⎭ 0, x ≥ 90
0, x ≤ -60 ⎧x + 60 ⎫ ⎪ , -60 ≤ x ≤ -30⎪ 30 μkiri0(x) = ⎨ -x , -30 ≤ x ≤ 0 ⎬ ⎪ 30 ⎪ ⎩ ⎭ 0, x ≥ 0
0, x ≤ 0 ⎫ x , 0 ≤ x ≤ 30 ⎪ 30 μkanan0(x) = 60 - x ⎨ , 30 ≤ x ≤ 60⎬ ⎪ 30 ⎪ ⎩ ⎭ 0, x ≥ 60 ⎧ ⎪
(5)
14 dengan x adalah nilai anggota, µkiri1(x) adalah derajat keanggotaan kiri1, µkiri0(x) adalah derajat keanggotaan kiri0, µmaju(x) adalah derajat keanggotaan maju, µkanan0(x) adalah derajat keanggotaan kanan0, dan µkanan1(x) adalah derajat keanggotaan kanan1 pada variabel sudut. Setelah didapatkan nilai fuzzy keluaran, kemudian dilakukan agregasi dengan metode Center of Gravity (COG). Formula untuk menghitung nilai agregasi COG ditunjukkan pada persamaan 6. Nilai keluaran hasil agregasi dengan metode (COG) merupakan nilai akhir dari proses fuzzy, yaitu sudut putar robot. Sudut putar inilah yang digunakan untuk menentukan besar perputaran dan pergerakan setiap kaki dan servo robot. (Algoritme fuzzy selengkapnya dapat dilihat pada Lampiran 1 dan contoh perhitungan pada Lampiran 2). COG =
∑nk μd (xk)xk ∑nk μd (xk)
(6)
dengan COG adalah nilai agregasi, µd(x) adalah derajat keanggotaan output, xk adalah nilai diskret output. Konversi Sudut Putar Menjadi Nilai Lebar Pulsa Proses ini digunakan untuk mengubah sudut putar robot menjadi nilai lebar pulsa. Nilai lebar pulsa tersebut akan menjadi masukan untuk algoritme koordinasi gerak kaki yang telah dikembangkan oleh Wulandari (2013). Konversi sudut putar robot menjadi nilai lebar pulsa disesuaikan dengan gerak yang dilakukan oleh robot. Persamaan 1 digunakan untuk menentukan lebar pulsa dalam menggerakkan servo. Lebar pulsa dimasukkan ke kode program fungsi gerakMotor yang telah dikembangkan pada penelitian sebelumnya oleh Wulandari 2013. Nilai pengubahan lebar pulsa untuk menggerakkan servo menggunakan prinsip PWM. PWM (Pulse Width Modulation) adalah teknik modulasi digital dengan lebar dari pulsa carrier dibuat bervariasi berdasarkan modulasi tegangan. Perbedaan tegangan inilah yang akan menentukan lebar pergerakan pada servo yang digunakan [PTDesign 2000]. Keluaran berupa besaran PWM akan menjadi masukan algoritme koordinasi kaki. Koordinasi Gerak dengan Tripod Gait Koordinasi gerakan kaki digunakan untuk mengatur gerakan pada kaki. Algoritme koordinasi gerak yang digunakan adalah hasil penelitian sebelumnya oleh Wulandari (2013). Wulandari (2013) telah membuat kode program untuk keluaran gerakan untuk maju, mundur, belok kanan, belok kiri. Namun karena navigasi yang dikembangkan oleh Chriswantoro (2013) tidak mencakup gerakan untuk mundur, maka hanya gerakan maju, belok kanan, dan belok kiri saja yang digunakan. Setiap gerakan kaki, akan mengikuti aturan dari 3 sumbu gerakan, seperti telihat pada Gambar 10. Pada setiap kaki terdapat tiga servo yang menentukan tiga arah gerakan berbeda. Servo 1 menggerakkan kaki searah sumbu Z, artinya menggerakkan kaki ke arah depan dan belakang. Servo 2 menggerakkan kaki searah sumbu Y, artinya menggerakkan kaki naik dan turun. Servo 3
15 menggerakkan kaki searah sumbu X, artinya menggerakkan kaki melebar dan menyempit ke samping. Koordinasi gerak kaki pada robot dapat menggunakan algoritme tripod gait, slow gait, dan lain-lain (Thirion dan Thiry 2002). Penelitian ini menggunakan algoritme tripod gait. Tripod gait artinya menggerakkan tiga kaki sekali langkah. Kaki-kaki yang bergerak adalah kaki depan dan belakang pada satu sisi dan kaki tengah pada sisi lainnya. Contohnya, jika melakukan gerak belok kiri maka kaki pertama yang digerakkan adalah kaki kanan depan, kanan belakang, dan kiri tengah. Kemudian, kaki kiri depan, kiri belakang, dan kanan tengah akan digerakkan setelahnya (selengkapnya pada Lampiran 3).
Sumber : Wulandari ( 2013) Gambar 10 Konfigurasi servo pada kaki Tripod gait menggerakkan kaki-kaki robot dengan 3 tahap yaitu lift, swing, dan contact. Penjelasan algoritme tripod gait secara lebih lengkap dapat dilihat pada Lampiran 4. Lift adalah gerakan untuk mengangkat kaki robot searah sumbu Y. Swing adalah gerakan kaki untuk mengayunkan kaki, dapat ke samping atau ke depan. Contact adalah gerakan untuk mengembalikan ke posisi semula setelah melakukan lift dan swing.
16 Gerak lift pada kaki ditentukan sebesar 100, karena gerakan kaki yang terlalu tinggi dapat menghalangi sensor jarak dalam mengakuisisi data. Gerak swing pada kaki ditentukan maksimal sebesar 450 sebagai sudut maksimal kaki dapat bergerak ke depan atau belakang tanpa membentur kaki lainnya. Jadi, jika sudut putar servo lebih dari 450, maka dilakukan dua kali gerak. Gerak contact adalah posisi tegak, yaitu pada posisi masing-masing servo 900. Secara keseluruhan, dapat dilihat bahwa algoritme koordinasi kaki dengan tripod gait yang dikembangkan oleh Wulandari (2013) telah dapat diimplementasikan dan bekerja baik pada hexapod. Algoritme ini memiliki waktu komputasi yang cukup cepat, terutama bila diimplementasikan dengan cara langsung memasukkan nilai lebar pulsa. Namun, karena lebar pulsa yang dimasukkan pada penelitian ini didapatkan dari nilai hasil fuzzifikasi dengan kompleksitas yang tinggi, maka respon kaki robot menjadi lebih lambat. Hasil perbandingan waktu komputasi algoritme tripod gait dengan memasukkan langsung lebar pulsa dengan perhitungan menggunakan jarak yang diolah dengan fuzzy dapat dilihat pada Tabel 2. Dapat dilihat bahwa dengan adanya fuzzy menyebabkan pergerakan kaki menjadi lebih lambat.
Tabel 2 Perbandingan waktu komputasi algoritme tripod gait tanpa fuzzy dan dengan fuzzy Jenis gerakan Maju Kiri Kanan
Sudut putar (o) 0 45 45
Waktu yang dibutuhkan tiap 1 langkah (detik) tanpa fuzzy (Wulandari 2013) dengan fuzzy 2.05 4.76 3.42 5.59 3.28 5.74
Pengujian Pengujian pada Masing-Masing Algoritme Pengujian algoritme tahap pertama dilakukan dengan cara membandingkan keluaran pada jarak pada serial monitor dengan jarak sebenarnya. Jarak sebenarnya didapatkan dengan melakukan pengukuran jarak robot dan dinding menggunakan mistar. Hasil pengujian tahap pertama integrasi algoritme dapat dilihat pada Tabel 3. Jarak hasil keluaran algoritme sama dengan jarak sebenarnya antara robot dan dinding. Hal ini mengindikasikan bahwa algoritme tersebut sudah menghasilkan output yang benar dan dapat langsung diintegrasikan dengan algoritme wall following dan logika fuzzy. Tabel 3 Hasil pengujian algoritme akusisi data sensor No 1 2 3 4 5
Jarak sebenarnya (cm) 3 5 7 9 12
Keluaran algoritme (cm) 3 5 7 9 12
17 Pengujian tahap kedua dilakukan dengan cara membandingkan sudut keluaran integrasi algoritme akusisi data sensor dan algoritme navigasi dengan keluaran manual hasil perhitungan sesuai fungsi keanggotaan yang ditetapkan. Hasil pengujian tahap pertama dapat dilihat pada Tabel 4. Terjadi perbedaan hasil antara keluaran algoritme dan perhitungan manual sebesar 0.1 – 0.5 derajat. Untuk melakukan perputaran, besar 0.1 – 0.5 masih dapat ditolerir kesalahannya. Oleh karena itu, proses integrasi tahap pertama dapat dianggap berhasil. Tabel 4 Hasil pengujian algoritme navigasi No 1 2 3
Sensor Samping 10 2 7
Sensor Serong 11 10 11
Sensor Depan 4 4 5
Sudut Keluaran Algoritme 43.66 46.34 44.26
Sudut Perhitungan Manual 43.33 46.6 44.04
Tabel 5 Hasil pengujian algoritme koordinasi gerak kaki No 1 2 3
Kondisi Maju Belok Kanan Belok Kiri
Besar masukan (derajat) 45 45
Harapan
Pengujian
Maju Belok Kanan 450 Belok Kiri 45 0
Berhasil Berhasil Berhasil
Setelah proses integrasi tahap kedua berhasil dilakukan, selanjutnya dilakukan integrasi tahap ketiga. Integrasi dilakukan pada ketiga algoritme, yaitu algoritme akusisi data sensor, algoritme navigasi dan algoritme koordinasi. Pengujian dilakukan dengan cara melakukan beberapa kondisi sehingga robot akan bergerak maju, belok kanan dan belok kiri secara bergantian. Keberhasilan pengujian diukur dari kesesuaian pergerakan robot dengan keadaan seharusnya. Hasil pengujian menunjukkan bahwa hasil perputaran robot sama dengan sudut putar seharusnya (Tabel 5). Pengujian Integrasi Algoritme Hasil pengujian integrasi algoritme menunjukkan bahwa integrasi algoritme telah berhasil dilaksanakan dengan menghasilkan keluaran yang benar (Tabel 6). Tabel 6 Hasil pengujian integrasi algoritme pada konfigurasi ruangan KRPAI 2014 No 1 2 3
Keadaan awal Pintu masuk Pojok ruangan Masuk ruangan
Wall following Right Right Right
4 5 6
Pintu masuk Pojok ruangan Masuk ruangan
Left Left Left
Harapan Masuk ruangan Belok kiri Telusur dinding kanan Masuk ruangan Belok kanan Telusur dinding kiri
Pengujian Berhasil Berhasil Berhasil Berhasil Berhasil Berhasil
18
Evaluasi Pengujian untuk algoritme akusisi data jarak telah berhasil, karena hasil keluaran dari algoritme sama dengan hasil pengukuran sebenarnya. Oleh karena itu, hasil tersebut dapat langsung menjadi masukan untuk sistem navigasi dengan wall following dan logika fuzzy. Pada pengujian algoritme navigasi didapatkan perbedaan hasil keluaran algoritme dan perhitungan manual sebesar 0.1 – 0.5 derajat, adanya pembulatan pada proses perhitungan, bukan pada proses integrasi algoritme. Oleh karena itu, proses integrasi tahap kedua dapat dianggap berhasil dilakukan. Pengujian koordinasi gerakan kaki menunjukkan bahwa hasil perputaran robot sama dengan sudut perputaran seharusnya, walaupun terdapat sedikit perbedaan derajat karena jika sudut putar lebih dari 450 maka sudut putar akan diulang dua kali. Selain itu, pergerakan servo yang kadang tidak seimbang akan menambah perbedaan nilai derajat. Pengujian kinerja robot pada konfigurasi ruangan 4 sesuai ketentuan KRPAI 2014 telah berhasil. Oleh karena itu, proses integrasi algoritme menunjukkan kinerja yang baik dan sesuai dengan ketentuan KRPAI 2014. Namun, hal yang menjadi kendala adalah cepat habisnya daya pada baterai yang digunakan, karena banyaknya jumlah servo yang harus digerakkan. Selain itu, menjaga posisi berdiri tegak pada sudut servo 900 juga menjadi salah satu faktor penyebab terkurasnya daya baterai. Pergerakan robot juga menjadi lebih lambat. Aturan fuzzy yang digunakan membuat kompleksitas dari kode program menjadi meningkat sehingga menjadikan waktu eksekusi program dan penentuan sudut putar robot lebih lama. Akibatnya, pergerakan kaki-kaki robot juga menjadi lebih lambat.
SIMPULAN DAN SARAN Simpulan Penelitian telah berhasil mengintegrasikan algoritme akusisi data sensor, navigasi dengan wall following dan logika fuzzy, dan koordinasi dengan tripod gait. Pengujian integrasi algoritme dilakukan pada konfigurasi ruangan sesuai ketentuan KRPAI 2014.
Saran Proses integrasi algoritme hanya dilakukan dengan menggabungkan kode program saja, sehingga baris kode yang dihasilkan sangat banyak. Untuk penelitian selanjutnya, keteraturan dan kompleksitas fungsi perlu diperhatikan. Aturan fuzzy yang dipakai menjadikan eksekusi program dan pergerakan kaki menjadi lebih lambat, sehingga perlu dicarikan metode lain yang lebih efisien, misalnya metode fuzzy dengan aturan yang berbeda atau metode decision tree.
19 Selain itu, modul untuk mendeteksi jumlah ruangan dengan sensor garis dan mendeteksi api dengan flame sensor belum diintegrasikan. Hal ini dapat menjadi topik penelitian selanjutnya.
DAFTAR PUSTAKA Carelli R, Freire EO. 2003. Corridor navigation and wall-following stable control for sonar-based mobile robots. Robotics and Autonomous Systems. 45:235-247. doi:10.1016/j.robot.2003.09.005. Chriswantoro EMY. 2013. Sistem navigasi pada robot pemadam api menggunakan wall following dan logika fuzzy [skripsi]. Bogor(ID): Institut Pertanian Bogor [Dikti] Direktorat Pendidikan Tinggi. 2012. Panduan Kontes Robot Pemadam Api Indonesia (KRPAI) Beroda dan Berkaki 2013. Jakarta: Direktorat Pendidikan Tinggi. Peri VM. 2002. Fuzzy logic controller for an autonomous mobile robot [tesis]. Hyderabad (IN): Jawaharlal Nehru Technological Univ. PTDesign. 2000. Pulse width modulation [Internet]. [diunduh 2013 Jun 23]. Tersedia pada: fab.cba.mit.edu/classes/MIT/961.04/topics/pwm.pdf RCToys. 2001. Announced specification of HS-645MG standard deluxe high torque servo [datasheet]. [diunduh 2012 Nov 2012]. Tersedia pada: www.rctoys.com/hitec-servos/HIT-HS645MG.pdf Siciliano B, Khatib O 2008. Handbook of Robotics [bibliografi]. Berlin (DE): Springer. Sidik NM. 2013. Analisis dan penerapan sensor jarak, sensor garis, sensor deteksi api, dan sensor garis pada fire fighting robot [skripsi]. Bogor(ID): Institut Pertanian Bogor. Thirion B, Thiry L. 2002. Concurrent programming for the control of hexapod walking. ACM SIGAda Ada Letters. 22 (1):17-28. doi: 10.1145/507548.507551. Wulandari. 2013. Implementasi inverse kinematics untuk koordinasi gerak robot berkaki enam [skripsi]. Bogor(ID): Institut Pertanian Bogor.
20
Lampiran 1 Algoritme navigasi dengan wall following dan logika fuzzy
21 Lampiran 2 Contoh Perhitungan Logika Fuzzy Contoh (dengan aturan left wall following) Masukan : Sensor depan = 16 cm Sensor samping = 19 cm Sensor serong = 33 cm Derajat keanggotaan : Sensor depan depan.dekat = 1 depan.jauh = 0 Sensor samping samping.dekat = 0.125 samping.sedang = 0.875 samping.jauh = 0 Sensor serong serong.dekat = 0 serong.sedang = 0 serong.jauh = 1 Aturan yang dipakai : Aturan 1 : depan.dekat, samping.dekat, serong.jauh = kanan0 Aturan 2 : depan.dekat, samping.sedang, serong.jauh = kanan1 Evaluasi aturan Aturan 1 : min (1, 0.125, 1) = 0.125 untuk kanan0 Aturan 2 : min(1,0.875,1) = 0.875 untuk kanan1
Derajat keanggotaan
Deffuzifikasi Aturan 1 (kanan0) Gambar pemotongan aturan
Kanan0
1
0 0
x1
10
20
30
Jarak (cm) x1 = 56.25 x2 = 3.75 Aturan 2 (kanan1) Gambar pemotongan aturan
40
50
x2
60
22
Derajat keanggotaan
Lampiran 2 Contoh Perhitungan Logika Fuzzy (Lanjutan)
Kanan1
1
0 30
40
50
60
70
Jarak (cm) x1 = 56.25 x2 = 63.75 Agregasi dengan Center of Gravity (COG) (0.125 ∗3.75)+(0.125 ∗56.25)+(0.875 ∗56.22)+(0.875 ∗63.75) 𝐶𝐶𝐶𝐶𝐶𝐶 = (2∗0.125)+(2(0.875 112 .5
𝐶𝐶𝐶𝐶𝐶𝐶 = 2 𝐶𝐶𝐶𝐶𝐶𝐶 = 56.25
)
80
90
23 Lampiran 3 Algoritme tripod gait untuk gerak maju, belok kiri, dan belok kanan
24 Lampiran 4 Algoritme koordinasi gerak dengan tripod gait
25
RIWAYAT HIDUP Penulis dilahirkan di Banjarnegara, Jawa Tengah pada tanggal 13 Mei 1991 dari ayah bernama Eko Dikoro dan ibu bernama Sainem. Penulis merupakan anak kelima dari 6 bersaudara. Pada tahun 2010, penulis menamatkan pendidikan di MAN 2 Banjarnegara. Penulis lulus seleksi masuk Institut Pertanian Bogor (IPB) pada tahun 2010 melalui jalur Undangan Seleksi Masuk IPB (USMI) di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam. Selama mengikuti perkuliahan, penulis menjadi asisten praktikum pada mata kuliah Rekayasa Perangkat Lunak (2013), Sistem Operasi (2013), dan Data Mining (2014). Penulis aktif di organisasi kemahasiswaan Himpunan Mahasiswa Ilmu Komputer (HIMALKOM) pada tahun 2012 dan Ikatan Keluarga Mahasiswa Banjarnegara (IKAMABARA) di IPB pada tahun 2012, serta berbagai kegiatan kepanitiaan seperti IToday (2012), Pesta Sains Nasional (2012), dan Olimpiade Mahasiswa IPB (2012). Selain itu, penulis juga aktif menjadi salah satu pengajar di LPK Tepi Sawah desa Cikonjen Kabupaten Bogor. Penulis melaksanakan kegiatan Praktik Kerja Lapangan di International Collaboration Office (ICO) IPB pada bulan Juli-Agustus 2013. Selain itu, penulis juga menjadi pemakalah pada Seminar Nasional dan Arsip Tahunan Bidang MIPA (SEMIRATA) 2014.