PENDAHULUAN Latar Belakang Perkembangan teknologi di bidang robotika saat ini menjadi perhatian yang sangat serius, terutama pada peran robot. Robot mampu menggantikan pekerjaan manusia terutama pada lingkungan yang sangat berbahaya seperti: penjelajahan ruang angkasa, penjinak bom, dan lain-lain. Salah satu jenis robot yang banyak digunakan adalah robot penghindar halangan yang mampu bergerak secara otonom, yang dirancang khusus untuk mengidentifikasi rintangan dan menentukan gerakan robot. Rintangan dengan beberapa buah objek tertentu, tidak cukup ditangani dengan aturan biasa seperti aturan nilai kebenaran. Nilai kebenaran hanya mendeteksi ada atau tidak adanya objek, tidak mendefinisikan dekat atau jauhnya posisi objek yang dideteksi. Sebagai contoh, robot penghindar halangan yang menggunakan aturan nilai kebenaran, akan sulit mengakselerasikan gerakan dengan posisi rintangan di sekitarnya, karena gerakan dibatasi dengan gerak maju, mundur atau berhenti. Dengan demikian, diperlukan aturan yang dapat meningkatkan kinerja robot. Salah satu solusi yang dapat digunakan adalah dengan menggunakan logika fuzzy yang bersifat samar terhadap objek yang dapat digunakan untuk mendefinisikan nilai jarak seperti: dekat, sedang dan jauh. Logika fuzzy merupakan bagian sekaligus perluasan dari logika Boolean. Perbedaannya terletak pada derajat kebenaran, Boolean 0 atau 1 sedangkan logika fuzzy 0 sampai dengan 1. Logika fuzzy sering menggunakan informasi linguistik dan verbal (Marimin 2002). Dengan menggunakan konsep logika fuzzy, dimungkinkan pembuatan sistem kendali yang cerdas. Hal ini dikarenakan perumusan matematika yang cukup sederhana pada pendekatan sistem pengendalian fuzzy, sehingga rumusan matematis yang kompleks tidak perlu dilibatkan dan tidak terlalu dititikberatkan pada ketepatan angka karena logika fuzzy bersifat nonlinear. Selain itu, logika fuzzy dapat dengan mudah disusun dan dikembangkan dengan berdasarkan representasi dari pengetahuan manusia. Penelitian tentang sistem kendali fuzzy telah dilakukan sebelumnya oleh Rizki Baihaqi (2010) dengan memodelkan sistem driver assistent pada gerak mobil. Baihaqi memanfaatkan logika fuzzy pada gerak
mobilnya untuk tetap pada jalur sesuai dengan jalan yang akan ditempuh. Namun, nilai masukan masih terbatas pada nilai 0 atau 1. Pada penelitian ini diimplementasikan logika fuzzy pada pengendali Robot Penghindar Halangan. Tujuan Tujuan penelitian ini adalah untuk merancang dan mengimplementasikan pengendali sistem berbasiskan logika fuzzy dengan nilai parameter yang dapat diubah-ubah pada robot penghindar halangan berdasarkan human expert. Ruang Lingkup Ruang lingkup penelitian ini difokuskan pada : 1. Masukan diterima melalui tiga buah sensor ultrasonik sebagai pengukur jarak. 2. Jarak sebuah objek atau halangan yang dapat dideteksi dalam rentang 2 cm sampai dengan 18 cm. 3. Keluaran kecepatan dan sudut belok robot diproses di dalam sistem mikrokontroler ATMega16. 4. Pengujian dilakukan pada lingkungan sebenarnya dengan menggunakan rintangan pada samping kiri, depan, dan samping kanan pada jarak tertentu. Manfaat Penelitian Logika fuzzy yang dirancang dan diimplementasikan pada Mikrokontroler ATMega16 diharapkan dapat memberikan informasi yang dapat digunakan oleh robot penghindar untuk melewati rintangan yang ada di sekitarnya, sehingga robot dapat menghindari halangan dengan lebih akurat.
TINJAUAN PUSTAKA Mikrokontroler AVR ATMega16 AVR merupakan bagian dari keluarga mikrokontroler CMOS 8-bit buatan Atmel. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving. Beberapa dari mikrokontroller Atmel AVR mempunyai ADC internal dan PWM internal. AVR juga mempunyai In-Sistem Programmable Flash on-chip yang
1
mengizinkan memori program untuk diprogram berulang-ulang dalam sistem menggunakan hubungan serial SPI (Wiyono 2007). Mikrokontroller AVR yang digunakan pada penelitian ini adalah ATMega16. Mikrokontroler terdiri atas pin input dan output yang berbeda. Adapun konfigurasinya dapat dilihat pada Gambar 1.
Gambar 1 Konfigurasi pin ATMega16 [Atmel 2004] Fitur dari Gambar 1 antara lain: 1. 2. 3. 4.
Serial In-System Programming (Serial ISP) Reprogrramming capability 32 x 8 General Purpose Working Register Two 8 bit Timer/Counter with Compare Modes 5. One bit Timer/Counter with Compare Modes compare dan capture 6. Real Time Counter with Separate Occillator 7. Four Pulse Widht Modulation (PWM) Cha 8. 8 channel, 10 bit Analog Digital Converter (ADC) 9. Master/Slave interface 10. Interface serial Two-Wire (TWI) 11. On-chip Analog Comparator 12. Programmable Watchdog Timer Separate On-chip Occillator 13. External and internal Interrupt Sources 14. External and internal Clock 15. Port USART 16. 16 KB Flash, 512 Byte EEPEROM, and 1 KB SRAM internal.
Paralax Inc. yang didesain khusus untuk teknologi robotika. Dengan ukurannya yang cukup kecil (2,1cm x 4,5cm), sensor dapat mengukur jarak antara 3 cm sampai 300 cm. Keluaran dari Ping))) berupa pulsa yang lebarnya merepresentasikan jarak. Lebar pulsanya bervariasi dari 115 uS sampai 18500 uS. Ping))) mendeteksi objek dengan cara mengirimkan suara ultrasonik dan kemudian “mendengarkan” pantulan suara tersebut. Ping))) hanya akan mengirimkan suara ultrasonik ketika ada pulsa trigger dari mikrokontroler (Pulsa high selama 5uS). Suara ultrasonik dengan frekuensi sebesar 40KHz akan dipancarkan selama 200uS. Suara ini akan merambat di udara dengan kecepatan 344.424m/detik (atau 1cm setiap 29.034uS), mengenai objek untuk kemudian terpantul kembali ke Ping))). Selama menunggu pantulan, Ping))) akan menghasilkan sebuah pulsa. Pulsa ini akan berhenti (low) ketika suara pantulan terdeteksi oleh Ping))). Oleh karena itulah lebar pulsa tersebut dapat merepresentasikan jarak antara Ping))) dengan objek. Selanjutnya mikrokontroler cukup mengukur lebar pulsa tersebut dan mengkonversinya dalam bentuk jarak. (Parallax 2009). Ilustrasi cara kerja sensor PING dapat dilihat pada Gambar 2 dan untuk perhitungannya dapat dilihat pada Persamaan 1. Perhitungan untuk mendapatkan jarak adalah sebagai berikut: L = ½ . TOF . v (1) keterangan: L = jarak ke objek (m) TOF = lebar pulsa waktu pengukuran yang diperoleh (s) v = cepat rambat suara di udara (m/s)
Gambar 2 Ilustrasi cara kerja sensor PING Sensor Ultrasonik Sensor ultrasonik merupakan sensor yang bekerja berdasarkan prinsip pantulan gelombang suara, di mana sensor menghasilkan gelombang suara yang kemudian menangkapnya kembali dengan perbedaan waktu sebagai dasar pengindraannya. Ping))) Ultrasonic Range Finder, adalah modul pengukur jarak dengan ultrasonik buatan
Bentuk fisik dari sensor PING dapat dilihat pada Gambar 3.
Gambar 3 Ping))) Paralax Ultrasonic Range Finder
2
Robot
c. Power supply (daya)
Istilah robot berasal dari Rusia, yaitu dari kata robota yang berarti tenaga kerja/buruh. Kemudian di awal abad ke 20 ilmuwan Cekoslowakia, Karel Capek (1890-1938) memperkenalkan istilah robot dengan membuat seperangkat mesin yang diberi nama Rosum’s Universal Robots (RUR). Menurut National Bureau of Standard, robot adalah bentuk aplikasi yang sebagian besar pada bidang industri bertujuan untuk meningkatkan produktivitas produksi. Robot dapat digunakan secara rutin terus menerus tanpa merasakan kebosanan atau digunakan pada lingkungan yang sangat berbahaya. Sebagai contoh dalam industri nuklir, robot harus digunakan karena radiasi nuklir sangat berbahaya bagi manusia. Robot digunakan pada industri perakitan, pengelasan, peleburan, pengecatan dan telah digunakan pada bidang militer sebagai peralatan penjinak bom, dan pada bidang kedokteran sebagai peralatan operasi otomatis. Pada bidang sosial robot banyak membantu sebagai pengganti bagian tubuh yang mengalami kecacatan (Shircliff 2002).
Power supply adalah sebuah unit yang menyediakan tenaga pada pengendali dan manipulator sehingga dapat bekerja. Power supply dalam suatu sistem robot dibagi menjadi dua bagian, yaitu bagian untuk kontroler dan bagian untuk manipulator. Bagian kontroler menggunakan elektrik sedangkan bagian manipulator bisa menggunakan elektrik, pneumatik, hidrolik ataupun ketiganya (Shircliff 2002).
Menurut David R. Shircliff (2002), sistem robot memiliki tiga komponen dasar, yaitu : manipulator, kontroler, dan power (daya). Efektor sering ditemukan pada bebrapa sistem robot, tetapi sifatnya tidak harus ada.
Penghasil detak (Clock Generator) [Atmel 2004] Penghasil detak atau Clock Generator tergantung pada mode data transfer, yaitu terdapat empat mode penghasil detak, yaitu: 1. 2. 3. 4.
Normal asynchronous Double Speed asynchronous Master synchronous Slave synchronous
Pada Gambar 4 ditunjukkan diagram blok logika penghasil detak yang terkait dengan beberapa register seperti USART Baud Rate Register (UBRR) (16-bit: UBRRL dan UBRRH) dan lain-lain.
a. Manipulator Manipuator digerakkan oleh aktuator atau disebut sistem drive. Aktuator atau sistem drive menyebabkan gerakan yang bervariasi dari manipulator. Aktuator bisa menggunakan elektrik, hidrolik ataupun pneumatik (Shircliff 2002). Aktuator pada robot penghindar halangan berupa roda yang digerakan oleh sebuah motor DC. Namun, pada penelitian hanya menggunakan display LCD sebagai aktuator elektrik. b. Pengendali Pengendali merupakan jantung dari sistem robot sehingga keberadaannya sangat penting. Pengendali menyimpan informasi yang berkaitan dengan data data robot, dalam hal ini data gerakan robot yang telah diprogram sebelumnya (Shircliff 2002). Pada penelitian ini digunakan mikrokontroler sebagai pengendali yang telah diprogram dengan rancangan logika fuzzy.
Gambar 4
Diagram blok logika penghasil detak untuk komunikasi serial
Deskripsi sinyal pada Gambar 4 adalah sebagai berikut: txclk rxclk xckl xcko fosc
: Transmitter clock (internal signal) : Receiver base clock (internal signal) : Input from xck pin (slave operation) : Clock output to xck (master operation) : XTAL pin frequency
Umumnya Clock Generator yang digunakan digunakan adalah Asynchronous Internal Clock Generator. Register penentuan baudrate atau kecepatan komunikasi serial atau UBRR digunakan dimana nilai yang diberikan adalah untuk down-counter. Setiap kali nilai down-
3
counter mendekati nol, maka sebuah clock dibangkitkan. Nilai UBRR yang sesuai dengan baudrate yang diinginkan mengacu pada osilator atau kristal yang digunakan oleh mikrokontroler. Perhitungan Asynchronous Internal Clock Generator adalah sebagai berikut: BAUD = fclk/(16(UBRR+1))
(2)
-
Semesta pembicaraan untuk variabel umur : [0 +~] Semesta pembicaraan unutk variabel temperatur : [0 40] [2].
Pada semesta pembicaraan terdapat fungsi keanggotaan himpunan fuzzy. Fungsi keanggotaan bervariasi, yaitu gaussian segitiga, dan trapesium.
keterangan: BAUD : Baudrate fclk : frekuensi clock UBRR : USART Baud Rate Register Untuk waktu eksekusi setiap instruksi pada program pada mikrokontroler dihitung dengan fungsi sebagai berikut: = /
pembicaraan merupakan himpunan bilangan real yang senantiasa naik secara monoton dari kiri ke kanan atau bilangan positif maupun negatif. Contoh :
(3)
keterangan: T : waktu proses fuzzy pada embedded system mikrokontroler (ms) fclk : frekuensi osilator (clock) Logika Fuzzy Logika fuzzy merupakan bagian dari logika boolean, yang digunakan untuk menangani konsep derajat kebenaran, yaitu nilai kebenaran benar dan salah. Logika fuzzy sering menggunakan informasi linguistik dan verbal. Dalam logika fuzzy terdapat beberapa proses, yaitu penentuan gugus fuzzy, penerapan aturan if-then, serta proses inferensi fuzzy (Marimin 2002). Himpunan Fuzzy Himpunan fuzzy didasarkan pada gagasan untuk memperluas jangkauan fungsi karakteristik sedemikian hingga fungsi tersebut akan mencakup bilangan real pada interval [0,1]. Nilai keanggotaannya menunjukkan bahwa suatu item dalam semesta pembicaraan tidak hanya berada pada 0 atau 1 (Kusumadewi 2002). Semesta Pembicaraan
Gaussian terdiri atas dua buah parameter, yaitu dan c. Kurva gaussian berbentuk sigmoid yang berhubungan dengan kenaikan dan penurunan permukaan secara tak linear, sehingga perubahnnya sangat halus dengan perumusan matematika yang cukup sulit. Kurva segitiga terdiri atas tiga buah parameter yaitu a, b, dan c, sedangkan trapesium terdiri dari empat buah parameter yaitu a, b, c, dan d. Keduanya merupakan fungsi keanggotaan yang paling sederhana, karena hanya tersusun dari beberapa garis lurus yang berhubungan dengan kenaikan dan penurunan permukaan secara linear sehingga perubahannya kasar dengan perumusan matematika yang sederhana. Pada penelitian ini digunakan dua fungsi keanggotaan, yaitu bentuk kurva segitiga dan trapesium karena perumusan matematika yang sederhana. Bentuk dari kurva tersebut dapat dilihat pada Gambar 5.
segitiga
trapesium
Gambar 5 Bentuk fungsi keanggotaan fuzzy Fungsi keanggotaan untuk representasi kurva segitiga adalah sebagai berikut:
Suatu model variabel fuzzy seringkali dideskripsikan dalam syarat-syarat ruang fuzzynya. Ruang ini biasanya tersusun atas beberapa himpunan fuzzy, himpunan-himpunan fuzzy mendeskripsikan suatu arti tertentu dari variabel-variabel yang diizinkan dalam permasalahan (Kusumadewi 2002). Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy. Semesta
4
Fungsi keanggotaan untuk representasi kurva trapesium adalah sebagai berikut:
keanggotaanya terhadap setiap himpunan fuzzy input. 2. Evaluasi aturan-aturan (rules) 3. Agregasi pada masing-masing aturan untuk menghasilkan suatu kesimpulan. 4. Defuzzifikasi himpunan fuzzy output menjadi nilai tunggal (crisp). Fuzzifikasi
Sistem Inferensi Fuzzy
Fuzzifikasi adalah proses pemetaan dari input menjadi sekumpulan data samar dalam berbagai semesta pembicaraan output (Sri Kusumadewi 2002).
Sistem inferensi fuzzy (FIS) merupakan penduga numerik yang terstruktur dan dinamik. Sistem ini mempunyai kemampuan untuk mengembangkan sistem intelijen dalam lingkungan yang tidak pasti dan tidak tepat. Sistem ini menduga suatu fungsi dengan logika fuzzy (Marimin 2002).
Nilai input merupakan besaran analog yang diubah menjadi fuzzy input. Besaran analog atau crisp input dipetakan pada domain membership function yang sesuai dengan nilainya. Crisp input yang masuk ke domain label (Linguistic Value) akan menjadi fuzzy input.
Sistem inferensi fuzzy telah berhasil diaplikasikan dalam berbagai bidang, seperti kontrol otomatis, klasifikasi data, analisis keputusan, dan sistem pakar. Karena itu, sistem inferensi fuzzy biasa dikenal dengan nama fuzzy-rule-based system, fuzzy expert system, fuzzy modelling, fuzzy assosiative memory, dan fuzzy logic controllers ([MathWorks] 2008).
Defuzzifikasi
Inferensi merupakan bagian penentuan aturan dari sistem logika fuzzy. Sejumlah aturan dapat dibuat untuk pengendali logika fuzzy yang menghubungkan aksi keluaran pengendali terhadap kondisi masukannya. Sejumlah aturan dapat dibuat untuk pengendali logika samar. Contoh berikut ini, merupakan perlakuan pada pengendali sistem yang akan dibahas: If (SensorKiri is dekat) and (SensorTengah is dekat) and (SensorKanan is dekat) then (kecepatan is berhenti) and (sudut_belok is lurus). Model Fuzzy Mamdani Model fuzzy Mamdani telah diperkenalkan oleh Ebrahim Mamdani pada tahun 1975. Metode ini memiliki beberapa kelebihan yang berdasarkan penalaran manusia, yaitu: intuitif, diterima oleh banyak pihak, dan masukan berasal dari manusia (Kusumadewi 2002). Proses perhitungan fuzzy Mamdani dibagi ke dalam empat tahap (Negnevitsky 2002) :
Defuzzifikasi merupakan suatu proses pengubahan fuzzy output ke output yang bernilai tunggal (crisp). Terdapat beberapa metode defuzzifikasi, namun yang sering digunakan adalah metode centroid dan maksimum. Perhitungan untuk mendapatkan nilai titik pusat adalah sebagai berikut (Marimin 2002):
keterangan: z = domain himpunan fuzzy = derajat keanggotaan Metode Kuadrat Terkecil Metode kuadrat terkecil adalah salah satu metode pendekatan yang paling penting dalam dunia keteknikan untuk regresi ataupun pembentukan persamaan dari titik-titik data diskretnya (dalam pemodelan), dan analisis sesatan pengukuran (dalam validasi model). Persamaan yang dihasilkan berupa persamaan pada garis lurus yang terdiri atas kelandaian (slove) kurva garis lurus dan perpotongan (intercept) kurva dengan ordinat. Perhitungan untuk mendapatkan nilai kelandaian (slove) atau gradien adalah sebagai berikut ([MathWorks 2008]):
1. Fuzzifikasi variabel masukan. Pada tahap ini masukan yang bersifat crisp dihitung derajat
5
keterangan: m : gradien persamaan garis lurus n : banyaknya data x : data x (pengukuran) y : data y (valid)
METODE PENELITIAN
Galat Relatif Hampiran dan Akurasi Galat suatu hampiran disebabkan oleh kekurangtelitian model matematika dan oleh galat bawaan dari data masukan bersifat warisan/bawaan (inherent). Galat ini mungkin tetap ada sekalipun penyelesaiannya diperoleh dengan menggunakan metode eksak (Sahid 2005).
Penelitian ini dilaksanakan dengan beberapa tahapan, yaitu: analisis permasalahan, perancangan, implementasi, pengujian, perancangan percobaan, percobaan, dan analisis hasil percobaan. Bagan dari metode penelitian dapat dilihat pada Gambar 6. Mulai Analisis Permasalahan Perancangan
Galat berasosiasi dengan seberapa dekat solusi hampiran terhadap solusi sejatinya. Semakin kecil nilai galatnya, semakin kecil solusi numerik yang didapatkan. Perhitungan untuk mendapatkan galat adalah sebagai berikut (Munir 2003): =
100%
Pengujian
(8) Berhasil ?
keterangan: : galat relatif mutlak a : nilai sejati a’ : nilai hampiran
Tidak
Ya Perancangan Percobaan
Akurasi mengacu pada seberapa dekat angka pendekatan/pengukuran terhadap harga sebenarnya. Akurasi merupakan kebalikan dari error. Perhitungan untuk mendapatkan akurasi adalah sebagai berikut ([MathWorks]): = 100% −
Implementasi
Percobaan Analisis Hasil Percobaan
(9)
keterangan: : galat relatif mutlak
Selesai Gambar 6 Metode penelitian Analisis Permasalahan Pada tahap ini dilakukan analisis yang mencakup segala kebutuhan dalam membangun perancangan dan implementasi logika fuzzy dalam hal identifikasi masalah. Identifikasi tersebut meliputi identifikasi sistem fuzzy pada gerakan robot, sensor ultrasonik untuk mengukur jarak, dan aplikasi simulasi Matlab sebagai data acuan keluaran fuzzy untuk embedded system mikrokontroler. Perancangan Perancangan Sistem Fuzzy Pada tahap ini akan dirancang sebuah aplikasi program simulasi yang terdiri atas tiga input dan dua output Blok diagram perancangan sistem fuzzy dapat dilihat pada Gambar 7.
6