A. Pendahuluan
1) Batasan Masalah
Kami membatasi masalah-masalah dalam tugas besar sebagai
berikut :
a. Menggunakan 2 sensor ultrasonik sebagai media pembacaan
jarak dan penentuan posisi robot (1 didepan, 1 di kanan
robot).
b. Robot berjalan dengan sistem navigasi right-wall following
c. Robot akan mencari titik api, memadamkannya, dan kembali
posisi awal start
d. Bahasa pemrograman yang digunakan adalah bahasa pemrograman C
e. Menggunakan metode fuzzy logic untuk menyempurnakan jalannya
robot serta adanya penambahan program untuk mendapatkan hasil
yang terbaik dalam navigasi
2) Proses Fuzzyfikasi
Setelah kita mendapatkan nilai jarak dari tiap sensor, langkah selanjutnya adalah fuzzyfikasi
yakni proses pengubahan nilai data jarak setiap sensor menjadi bentuk himpunan fuzzy menurut fungsi keanggotaannya.Proses awal di dalam proses fuzzyfikasi adalah membuat fungsi keanggotaan dari setiap masukan terlebih dahulu, serta menentukan banyaknya variabel linguistic di dalam fungsi keanggotaan yang akan kita buat nantinya. Dari fungsi keanggotaan yang kita buat akan dapat diketahui nilai derajat keanggotaan masing-masing variabel dalam himpunan fuzzy yang telah dibuat.Dalam tugas besar kami, terdapat dua masukan dari sensor ultrasonik, yaitu sensor ultrasonik depan dan sensor ultrasonik kanan. Masukan dari sensor ultrasonik depan memiliki dua variabel linguistic, yaitu DEKAT dan JAUH dengan menggunakan fungsi keanggotaan trapesium. Berikut tampilan fungsi keanggotaan dari sensor ultrasonik depan di dalam sebuah gambar :
Dari tabel di atas, maka kita memiliki 6 aturan sebagai berikut :
•IF sensor depan=DEKAT AND sensor kanan=DEKAT THEN motor kiri=PELAN AND motor kanan=CEPAT
• IF sensor depan=DEKAT AND sensor kanan=CUKUP THEN motor kiri=PELAN AND motor kanan=CEPAT
• IF sensor depan=DEKAT AND sensor kanan=JAUH THEN motor kiri=CEPAT AND motor kanan=PELAN
• IF sensor depan=JAUH AND sensor kanan=DEKAT THEN motor kiri=PELAN AND motor kanan=CEPAT
• IF sensor depan=JAUH AND sensor kanan=CUKUP THEN motor kiri=SEDANG AND motor kanan=CEPAT
• IF sensor depan=JAUH AND sensor kanan=JAUH THEN motor kiri=CEPAT AND motor kanan=SEDANG
Motor Kiri
PELAN(0.5), PELAN(0.5) → maka nilai derajat keanggotaan PELAN = 0.5
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25
Motor Kanan
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25
CEPAT(0.5), CEPAT(0.5) → → maka nilai derajat keanggotaan CEPAT
Motor Kiri = PELAN(0.5), SEDANG(0.25)
Motor Kanan = SEDANG(0.25), CEPAT(0.5)
Data diatas dapat diolah sebagai berikut :
>>Motor Kiri
PWMKIRI= ((0.5)70+(0.25)150)/(0.5+0.25)=96.6
Perkembangan
ilmu pengetahuan memacu perkembangan teknologi yang dapat membantu aktifitas
manusia. Pada umumnya manusia tertarik dengan sesuatu yang dapat meringankan
beban dari pekerjaannya. Salah satu caranya dengan adanya pemakaian robot.
Robot memiliki beberapa kelebihan dalam pekerjaan dibandingkan manusia, salah
satunya adalah dalam aspek tenaga, kualitas kerja yang statis, dan masih banyak
lagi.
Sementara
itu, perkembangan dunia robotik di Indonesia mulai berkembang dengan pesat,
dimana dapat dilihat dari banyaknya kontes-kontes robot yang diadakan saat ini.
Salah satu kontesnya adalah KRCI(Kontes Robot Cerdas Indonesia), yang mana
merupakan ajang kontes robot bertaraf nasional. Pada lomba ini robot dihadapkan
pada lintasan tertentu.
Robot
Cerdas Pemadam Api divisi beroda adalah robot yang memiliki kemampuan
menjelajahi suatu arena untuk menemukan titik api kemudian memadamkannya dan
kembali ke titik awal dengan waktu secepat mungkin. Agar dapat melakukan misi
tersebut dalam waktu yang cepat, sistem navigasi dalam perancangan robot
memegang peranan penting, seperti sistem navigasi right-wall following, left-wall following, dead recogning, dan
lain-lain.
Pada
sistem kerja robot juga dibutuhkan suatu input berupa sensor yang berguna
sebagai media perindraan robot. Sensor yang biasa digunakan pada robot adalah
sensor ultrasonik sebagai sensor untuk mengukur jarak. Sensor ini dapat
memberikan data sejauh apa robot ini dapat bergerak, sesuai dengan adanya
halangan di depannya. Selain itu dalam robot pemadam api juga ditambahkan
sensor untuk mendeteksi api dan sensor
untuk mendeteksi suhu api, yaitu sensor UVtron
dan Thermal Array.
Penggunaan
sensor ultaksonik tidak terbatas hanya untuk mendapatkan jarak, tetapi sensor
ini juga memungkinkan robot dapat mengetahui posisi robot tersebut terhadap
suatu lintasan (apakah robot sudah dalam posisi yang tepat atau tidak). Posisi
robot yang miring dapat disempurnakan dengan dilakukannya kontrol kecepatan
motor terhadap perbandingan pembacaan ultrasonik dengan metode fuzzy logic.
Dengan
adanya kesamaran posisi robot yang didapat dari sensor ultrasonik (dekat,
sedang, atau jauh,dll), maka metode fuzzy
logic dinilai tepat. Diharapkan dengan menggunakan metode ini bisa
mendapatkan hasil yang terbaik dalam memposisikan robot dalam lintasannya
secara tepat dikarenakan banyak kemungkinan yang terjadi pada posisi robot saat
melalui lintasan.
Dengan
latar belakang itu semua, maka kami membuat tugas besar kami dengan judul
“Desain dan Implementasi Robot Pemadam Api Beroda dengan Kontrol Fuzzy Logic
Berbasis Sensor Ultrasonik”.
1) Batasan Masalah
Kami membatasi masalah-masalah dalam tugas besar sebagai
berikut :
a. Menggunakan 2 sensor ultrasonik sebagai media pembacaan
jarak dan penentuan posisi robot (1 didepan, 1 di kanan
robot).
b. Robot berjalan dengan sistem navigasi right-wall following
c. Robot akan mencari titik api, memadamkannya, dan kembali
posisi awal start
d. Bahasa pemrograman yang digunakan adalah bahasa pemrograman C
e. Menggunakan metode fuzzy logic untuk menyempurnakan jalannya
robot serta adanya penambahan program untuk mendapatkan hasil
yang terbaik dalam navigasi
Dari fungsi keanggotaan di atas, dapat diketahui derajat keanggotaan masing-masing variabel dala himpunan fuzzy DEKAT dan JAUH. Untuk menghitung derajat keanggotaan dapat menggunakan persamaan sebagai berikut :
Sedangkan untuk sensor ultrasonik kanan memiliki tiga variabel linguistic, yaitu DEKAT, SEDANG, dan JAUH dengan fungsi keanggotaan gabungan dari fungsi segitiga dan trapesium seperti yang tampak pada gambar :
3) Rules Evaluation
Pada rules evaluation, terjadi pengolahan data input fuzzyfikasi dengan hasil keluaran yang dikehendaki dengan aturan-aturan tertentu. Dari aturan-aturan yang dibentuk inilah yang nantinya akan menentukan respon dari sistem terhadap berbagai kondisi set point dan gangguan yang terjadi pada sistem yang akan dibuat. Dalam tugas besar kami set point yang kami ambil adalah 8 cm dari dinding, dimana posisi tersebut berada pada posisi sedang pada sensor kanan. Berikut adalah tabel rules evaluation :
Pada rules evaluation, terjadi pengolahan data input fuzzyfikasi dengan hasil keluaran yang dikehendaki dengan aturan-aturan tertentu. Dari aturan-aturan yang dibentuk inilah yang nantinya akan menentukan respon dari sistem terhadap berbagai kondisi set point dan gangguan yang terjadi pada sistem yang akan dibuat. Dalam tugas besar kami set point yang kami ambil adalah 8 cm dari dinding, dimana posisi tersebut berada pada posisi sedang pada sensor kanan. Berikut adalah tabel rules evaluation :
Dari tabel di atas, maka kita memiliki 6 aturan sebagai berikut :
•IF sensor depan=DEKAT AND sensor kanan=DEKAT THEN motor kiri=PELAN AND motor kanan=CEPAT
• IF sensor depan=DEKAT AND sensor kanan=CUKUP THEN motor kiri=PELAN AND motor kanan=CEPAT
• IF sensor depan=DEKAT AND sensor kanan=JAUH THEN motor kiri=CEPAT AND motor kanan=PELAN
• IF sensor depan=JAUH AND sensor kanan=DEKAT THEN motor kiri=PELAN AND motor kanan=CEPAT
• IF sensor depan=JAUH AND sensor kanan=CUKUP THEN motor kiri=SEDANG AND motor kanan=CEPAT
• IF sensor depan=JAUH AND sensor kanan=JAUH THEN motor kiri=CEPAT AND motor kanan=SEDANG
Setelah mendapatkan aturan seperti tabel di atas, maka selanjutnya yang dilakukan adalah mencari nilai derajat keanggotaan untuk nilai setiap aturan yang didapat. Nilai keanggotaan untuk keluaran didapatkan dengan menggunakan fungsi AND.Misalkan didapatkan aturan sebagai berikut :
•IF Sensor Depan = DEKAT(0.5) AND Sensor Kanan = DEKAT(0.5) THEN Motor Kiri = PELAN AND Motor Kanan = CEPAT
• IF Sensor Depan = DEKAT(0.75) AND Sensor Kanan = CUKUP(0.5) THEN Motor Kiri = PELAN AND Motor Kanan = CEPAT
• IF Sensor Depan = JAUH(0.75) AND Sensor Kanan = CUKUP(0.25) THEN Motor Kiri = SEDANG AND Motor Kanan = SEDANG
• IF Sensor Depan = DEKAT(0.75) AND Sensor Kanan = CUKUP(0.5) THEN Motor Kiri = PELAN AND Motor Kanan = CEPAT
• IF Sensor Depan = JAUH(0.75) AND Sensor Kanan = CUKUP(0.25) THEN Motor Kiri = SEDANG AND Motor Kanan = SEDANG
Maka keluaran akan mendapatkan nilai keanggotaan sebagai berikut :
o IF Sensor Depan = DEKAT(0.5) AND Sensor Kanan = DEKAT(0.5) THEN Motor Kiri = PELAN(0.5) AND Motor Kanan = CEPAT(0.5)
o IF Sensor Depan = DEKAT(0.75) AND Sensor Kanan = CUKUP(0.5) THEN Motor Kiri = PELAN(0.5) AND Motor Kanan = CEPAT(0.5)
o IF Sensor Depan = JAUH(0.75) AND Sensor Kanan = CUKUP(0.25) THEN Motor Kiri = SEDANG(0.25) AND Motor Kanan = SEDANG(0.25)
o IF Sensor Depan = DEKAT(0.5) AND Sensor Kanan = DEKAT(0.5) THEN Motor Kiri = PELAN(0.5) AND Motor Kanan = CEPAT(0.5)
o IF Sensor Depan = DEKAT(0.75) AND Sensor Kanan = CUKUP(0.5) THEN Motor Kiri = PELAN(0.5) AND Motor Kanan = CEPAT(0.5)
o IF Sensor Depan = JAUH(0.75) AND Sensor Kanan = CUKUP(0.25) THEN Motor Kiri = SEDANG(0.25) AND Motor Kanan = SEDANG(0.25)
Setelah nilai linguistic keluaran telah mendapatkan nilai derajat keanggotaan, maka pada nilai linguistic keluaran yang sejenis dicari nilai derajat keanggotaan yang maksimum untuk digunakan dalam pengolahan data selanjutnya, yakni defuzzifikasi.
Misalnya dari data di atas didapatkan nilai-nilai maksimum setiap linguistic keluaran sebagai berikut :
Misalnya dari data di atas didapatkan nilai-nilai maksimum setiap linguistic keluaran sebagai berikut :
Motor Kiri
PELAN(0.5), PELAN(0.5) → maka nilai derajat keanggotaan PELAN = 0.5
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25
Motor Kanan
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25
CEPAT(0.5), CEPAT(0.5) → → maka nilai derajat keanggotaan CEPAT
Lalu, setelah mendapatkan derajat keanggotaan pada nilai keluarannya, nilai keluaran juga memiliki fungsi keanggotaan model singletone, yang merupakan model interferensi sederhana. Dalam tugas besar ini kami menggunakan Model Sugeno
4) Defuzzyfikasi
Proses ini merupakan penggabungan dari beberapa fuzzy set yang telah didapatkan. Misal kita dapat menggunakan data di atas :
4) Defuzzyfikasi
Proses ini merupakan penggabungan dari beberapa fuzzy set yang telah didapatkan. Misal kita dapat menggunakan data di atas :
>>Motor Kiri
PELAN(0.5), PELAN(0.5) → maka nilai derajat keanggotaan PELAN = 0.5
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25
PELAN(0.5), PELAN(0.5) → maka nilai derajat keanggotaan PELAN = 0.5
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25
Fungsi Keanggotaan Motor Kiri
>>Motor Kanan
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25
CEPAT(0.5), CEPAT(0.5) → maka nilai derajat keanggotaan CEPAT = 0.5
Fungsi Keanggotaan Motor Kanan
>>Motor Kanan
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25
CEPAT(0.5), CEPAT(0.5) → maka nilai derajat keanggotaan CEPAT = 0.5
Fungsi Keanggotaan Motor Kanan
Proses selanjutnya adalah mengolah data tersebut menggunakan metode Weight Average untuk proses defuzzifikasinya. Metode ini mengambil rata-rata dengan menggunakan nilai derajat keanggotaan dari proses komposisi fuzzy set menggunakan Model Sugeno sebelumnya.Dari data sebelumnya, didapatkan data sebagai berikut:
Motor Kiri = PELAN(0.5), SEDANG(0.25)
Motor Kanan = SEDANG(0.25), CEPAT(0.5)
Data diatas dapat diolah sebagai berikut :
>>Motor Kiri
PWMKIRI= ((0.5)70+(0.25)150)/(0.5+0.25)=96.6
Jadi, berdasarkan persamaan di atas nilai kecepatan Motor Kiri yang didapat adalah 96.6 PWM
>>Motor Kanan
PWMKANAN= ((0.25)150+(0.5)230)/(0.25+0.5)=203.3
PWMKANAN= ((0.25)150+(0.5)230)/(0.25+0.5)=203.3
Jadi, berdasarkan persamaan di atas nilai kecepatan Motor Kanan yang didapat adalah 203.3 PWM. Inilah hasil tugas besar fuzzy logic yang saya buat
Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid