Robot Line Follower dengan Kendali PID-Fuzzy


Robot Line Follower dengan Kendali PID-Fuzzy

Ane mau… sharing lagi nih ma temen2 tentang LF… mungkin ada yg bosen kok isi blog ini kebanyakan robot LF aja heheheeehe😀 Ya begitulah kondisinya temen2 ane maniak banget dengan ni robot LF makanya ane suka ber-eksperiment tentang bagaimana menerapkan berbagai kendali yg tepat untuk diterapkan di robot LF ini supaya pergerakannya itu halus cepat dan responsif. Yups ane dah menerapkan kendali PID pada ni robot dan saat ini ane mencobanya dengan menggabungkannya dengan kendali Fuzzy. Ide itu berawal dari setelah ane dapat matakuliah sistem pengaturan cerdas di Teknik Elektro ITS. Matakuliah (walaupun cuma 2 sks) itu saat ane senangi temen2… dimana dosennya mantep banget (perfect) jelasinnya (terimakasih banyak ya pak) tidak hanya teori tapi praktek juga… so ane terrapin deh di robot LF ane😀. Nah oleh sebab itu ane coba share ilmu yg sedikit ini kepada temen2 semua… semoga bermanfaat dan bisa dijadikan referensiya… ^_^

Nah sebelum ane jelasin tentang logika Fuzzy-nya ane kenalkan dahulu ye ma robot LF ane yang tersisa, maksudnya yang kondisinya masih FIT alias sehat (masih bisa nyala). Ni dia foto-fotonya:

Temen2 semua dah liatkan robot LF ane yang satu ini… Jelekkan (kurang estetika)… hehehe😀 itu lah robot ane.. desain mekanik ala kadarnya… menggunakan acrylic sisa dan PCB bolong sebagai kerangka robotnya… sensornya pun langsung ditanam di PCB bolong gak pake desain layout langsung solder aja praktis bukan… komposisi gearbox-nya pake kanibal maenan tank terus ane tempel ke bodi robotnya pake Lem Tembak… itulah senjata ane gan ^_^  walaupun mekanik robotnya jelek,  setelah diberi kontroler yang tepat jalannya bisa halus lo hehehe😀 ini dia salah satu aksi robotnya pada kasus Line Maze Robot.

Nah ni dia spesifikasi lengkap dari robot LF ane :

  • Mikrokontroler AVR = ATMega32
  • Sensor = LED Super Bright Putih – Photo Dioda (8 di depan, 3 di sayap kiri, 3 di sayap kanan dan 1 di tengah belakang sebagai kondisi NOS… total pake 15 sensor dengan Konfigurasi ADC-Multiplekser)
  • Motor DC = DVD 6.0 V
  • Gear  = Kanibal dari maenan Tank
  • Battery = LiPo 850mAH / 11,1V
  • Driver Motor = L293d
  • Dimensi = panjang; 18 cm × lebar; 15 cm
  • Bahasa Pemrograman = Bahasa C dengan compiler  CodeVision AVR

Selanjutnya untuk penjelasan logika Fuzzy ini temen2 bisa googling di mbah google ato baca sedikit penjelasnya disini ato sedot ni paper. Berikut ini aturan yang harus temen2 fahami tentang logika Fuzzy yang ane uraikan sebagai berikut (bila ada kesalahan mohon ane dikoreksi ya gan ^_^ ).

Tahap Pemodelan dalam logika Fuzzy:

Nah bila kita terapkan dalam pengendalian proses dapat diterapkan seperti blok di bawah ini:

Dari uraian blok diatas dapat kita fahami bahwa didalam logika Fuzzy terdapat tiga hal terpenting yang harus temen2 fahami diataranya:

  1. Fuzzifikasi adalah proses untuk mengubah variabel non fuzzy (variabel numerik) menjadi variabel fuzzy (variabel linguistik).
  2. Inferencing (Ruled Based) , pada umumnya aturan-aturan fuzzy dinyatakan dalam bentuk “IF……THEN” yang merupakan inti dari relasi fuzzy.
  3. Defuzifikasi adalah proses pengubahan data-data fuzzy tersebut menjadi data-data numerik yang dapat dikirimkan ke peralatan pengendalian.

Oke deh… segitu aja ya penjelasan dari ane tentang teori logika Fuzzy-nya… selanjutnya ane jelasin tentang cara pengaplikasiannya pada robot LF… tapi logika Fuzzy yang ane terrapin pada robot LF ini tidak murni hanya dengan logika Fuzzy saja tapi digabungkan (hybrid) dengan kendali PID… so judulnya yang lebih tepat adalah Robot Line Follower dengan Kendali Hybrid PID-Fuzzy.

Diagram Blok Hybrid Kendali PID – Fuzzy

Nah untuk penjelasan Kendali PID-nya bisa temen2 lihat postingan ane yg lampau disini. Dan untuk penjelasan logika Fuzzy-nya ialah sebagai berikut:

Perhatikan step berikut temen2 :

Aplikasi pemrograman logika fuzzy ini ane terapkan dalam bahasa C (codevisonAVR), ini dia potongan program untuk penentuan membership pada proses penentuan crisp input dalam proses fuzzikasi-nya. Ane menggunakan 7 membership dalam proses cris input pada Fuzzifikasi error dan derror-nya, dengan fungsi keanggotaan segitiga (triangle membership function).  Berikut ini sample code fuzzifikasi-nya:

fuzzifikasi

Proses fuzzifikasi, fungsi keanggotaanya ane aktifkan dengan fungsi keanggotaan segitiga yang selanjutnya masuk ke proses Rule Base Evaluationnya. Proses Rule Evaluation-nya mengacu pada tabel MacVicar Whelan dengan menggunakan Mamdani Inference Rule, berikut ini contoh tabee proses rule evaluationya menggunakan teknik dari MacVicar Whelan dengan menggunakan 5 membership error dan derror. Untuk case pada robot ini, ane gunakan 7 membership error dan derror.

Nah berikut ini sample codenya untuk Mamdani Inference Rule using MacVicar Whelan Method:

Inference Rule

Dari hasil rule evaluasi ini kita dapatkan hasil kontrol logika fuzzy-nya yang selanjutnya kita defuzzifikasi yaitu dengan banyak cara (bisa lihat disini sebagai reference) diantaranya yang paling umum adalah dengan teknik Center of Gravity (COG). Nah untuk case robot ini, ane gunakan teknik dari Sugeno menggunakan Weighted Average (WA). Berikut ini sample code defuzzifikasi-nya:

defuzzifikasi

Dari proses defuzzifikasi ini baru lah kita dapatkan sinyal kontrol logika Fuzzy yang akan kita terapkan pada robot LF nantinya. Nah selajutnya proses pemberian nilai PWM motor robot LF ane adalah gabungan (hybrid) antara kendali PID dengan logika Fuzzy. Berikut sample code untuk ditransfer ke aktuator (driver motor robot) dalam bentuk PWM:

Dan ini dia video robot LF ane dengan kendali Kendali PID – Fuzzy…

Semoga informasi ini bermanfaat :)

66 responses to this post.

  1. Posted by sukrn on Desember 8, 2011 at 12:09 am

    mass bagi program a mass
    krm lwt email y mass

    Balas

  2. sama mas,, bagi programnya mas

    yang pake ic Cmos CD4051 juga mas terima kasih mas

    email saya :muhammad_raharjo@yahoo.com

    Balas

  3. Posted by Muh Yasin Ardhi S on Desember 12, 2011 at 7:56 pm

    wah hebat gan,
    sebelumnya salam kenal yh…
    gan masih blum ada bayangan nih mw gabungin kontrol PID n fuzzy, gan buatin dong diagram alirnya mca di kontrol PID posting sebelumnya biar ngerti…
    maklum masih smk jurusan mekatronika di batam, hoby avr apalagi sistem kontrol kaya gini wah banyak banget fungsinya…

    Balas

  4. Posted by memet apriadi on Desember 16, 2011 at 9:34 pm

    trims mas…

    Balas

  5. Posted by memet apriadi on Desember 16, 2011 at 9:35 pm

    mas gimana cara memprogram line follower..?

    Balas

  6. Posted by masdar fahmi on Desember 31, 2011 at 10:32 am

    mas… bisa minta programnya gak mas???

    email saya : masdar.fahmi@gmail.com

    Balas

  7. Posted by lono on Januari 7, 2012 at 1:51 am

    Bermanfaat sekali mas tulisannya..!!!
    Manthap…!!

    Balas

  8. mas, mnta tolong minta program.y?
    minta tolong banget d krim k email ane onedi.12@gmail.com

    Balas

  9. Posted by bagus hendra on Januari 8, 2012 at 5:27 pm

    kalo mnurut mas fahmi, mana nih yang lebih enak di kendaliin. pake PID atau pake fuzzy logic..

    Balas

    • sebenarnya dengan PID sudah cukup baik mas… cuma waktu kuliah dapat penjelasan lagi dari pak dosen kalo fuzzy cukup ampuh untuk sistem non linier apalagi dikombinasikan dengan berbagai kecerdansan buatan (AI) seperti neuro-fuzzy dll… tapi kelemahan fuzzy bila di implementasikan di mikrokontroler membutuhkan rutin program yg panjang…sehingga untuk mikro yg lelet kurrang baik bila diterapkan…tapi untuk mikrokontroler AVR ini udah cukup bisa lah😀

      Balas

  10. Posted by danang on Januari 8, 2012 at 6:06 pm

    thank you mas fahmi udah njelasin fuzzy di robot LF. keren bnget robot nya mas

    Balas

  11. Posted by nikkoplan on Januari 24, 2012 at 6:23 am

    bang fahmi, boleh minta rangkaian ADC multiplexernya, n minta program keseluruhannya?

    Balas

  12. nice bro

    Balas

  13. Mantap mas…. kebetulan juga hobi main line follower
    tp blum pernah menerapkan sistem kontrol kyak pid sm fuzzy….sharing progrmnya g mas, bs kirim lewat email mas, pingin coba juga keren ada sistem NOS…Makasih sebelumnya

    Balas

  14. Mas boleh tanya…, 5 membership dalam proses cris input pada CAVR itu gunanya untuk apa?? boleh dijelasin mksud programnya??
    proses rule evaluation kan ada NB NS Z PS dan PB…mksutnya apa itu mas. Implementasi Fuzzynya itu sendiri apakah cara memberi PWM yang tepat pada motor untuk setiap kondisi atau gmna mas???

    Sebelumnya makasih mas
    Maaf banyak tanya, hanya ingin belajar…
    soalnya g pernah diajari begituan😀

    Balas

    • trims atas pertanyaannya… fungsinya itu untuk membuat fungsi keanggotaan dalam proses fuzzifikasi…nah itu cuma fungsi keanggotaannya saja…untuk proses aktifasi fungsinya menggunakan banyak cara mas… diantaranya Fungsi keanggotaan Segitiga, Fungsi keanggotaan gaussian, Fungsi keanggotaan trapesium… nah setelah itu baru ke rule base fuzzynya… setelah itu dilakukan defuzzifikasi dengan banyak metode juga mas diantaranya Metode maximum (max), Metode titik tengah (Center of area), Metode rata – rata (Average) dan sebagainya… untuk aplikasi pada robot LF ku ini… pertama saya buat membership function error dan derrornya sebanyak 7…terus fungsinya saya aktifkan dengan keanggotaan segitiga…setelah masuk ke rule base…lalu ke proses defuzzifikasi… begitu penjelasan dari saya…jika masih ada yang ditanyakan insa Allah saya usahakan untuk menjawabnya ^_^

      Balas

      • Makasih atas jwabannya….tp msh bnyak yg g paham, bolehkan tanya2 dan tanya mas😛
        Tp setelah baca yg PID mulai paham, tentang pembobotannya….kalau g salah LF mas pembobotannya ada -13-0-13 bnyak bnget itu mas, bs g mas ditambah blok ilustrasi pembobotan sensornnya biar paham mas kalau g di jelasin dengan kata2 jga g apa2. ^__^

      • iya pembobotan sensornya seperti pada penjelasan di postingan kendali PID😀

  15. Posted by noname on Februari 6, 2012 at 6:48 pm

    nice post mas fahmi…

    Balas

  16. Posted by David on Februari 8, 2012 at 4:17 pm

    Nice Infonya Mas Fahmi, Boleh Nanya2 Donk Mas ?🙂.
    Saya Lagi Buat Robot Pemadam Api Menggunakn Tiga sensor Ping. Depan, Samping Depan Kiri, Dan Samping Depan Kanan. Bisa Kasih Gambaran Mas Jika Di implementasikan Menggunakan Logika Fuzzy Teknik Wall Following ? Terima Kasih Atas Tanggapanya😀

    Balas

  17. Sumpah gan keren banget.. Ane juga lagi TA nih. ane sih bukan tentang robot, tapi cara kerja nya mirip gini juga.. Salam kenal ya masbro.. Thanks buat share nya ya.. Kalo berkenan ane pengen belajar sama masbro..😀

    Balas

  18. Bagus mas, tp saya masih baru ni..belum tau apa2 soal Logika Fuzzy..
    bisa kirim ke mail mas buat ane pelajari..

    thomas_cruise86@yahoo.com

    trim mass🙂

    Balas

  19. Posted by angga on Februari 21, 2012 at 5:18 am

    aslmualikum,
    mas boleh minta program lengkapnya nggx?
    saya mau belajar,
    kirim kesini ya mas klo bersedia si

    anggarudiana@yahoo.com

    Balas

  20. Posted by Ridla on Februari 23, 2012 at 1:33 pm

    nice postingannya..
    mas klo Fuzzy diterapin k sensor jarak gmna ya?

    Balas

  21. Posted by didin on Maret 19, 2012 at 9:03 am

    mas sharing tutorial codevision avr donk, , pengen belajar😀

    Balas

  22. mas boleh minta program lengkapnya nggx?
    saya mau belajar,
    arifmafatia@gmail.com

    Balas

  23. Posted by Bobby Surya on Mei 11, 2012 at 5:50 pm

    Mas saya sedang belajar tentang fuzzy , namun masih kebingungan ,
    bolehkah minta program lengkapnya mas ??

    bobbysurya16@yahoo.co.id

    terimakasih ini sangat membantu..

    Balas

  24. Posted by ryan on Mei 22, 2012 at 7:56 am

    saya sama seprti sodara bobby, karna tuntutan tugas kampus saya sedikit kebingungan..
    boleh minta listing programnyha?sebelumnya terima kasih banyak ya mas..

    Balas

  25. Posted by Absen Bawah on Mei 25, 2012 at 8:43 am

    Untuk sdr. bobby, sudah ada programnya lengkap di Absen Bawah. coba tanya sdr. ryan yang komen di bawah komen anda sdr. bobby
    Silakan hubungi kami di Absen Bawah (koin 037 – 048 dan 001).
    atau email di anakgembalasapi@plasa.com

    Balas

  26. wah kalau boleh q kirimin programnya mas,,,
    LF yang sangat kompleks dengan beberapa perpaduan pemograman…
    email ane :
    asrofi.muhammad770@gmail.com

    Balas

  27. Posted by masbro on Juni 7, 2012 at 4:11 pm

    mas fahmi.. program mas kok ga ada penentuan derajat keanggotaan dari fuzzy-nya ya? cma dibatasi antara 0-8 = positif kecil, 8-13 itu positif besar..

    Balas

  28. Posted by afandi on Juni 27, 2012 at 11:41 am

    mas boleh minta contoh program perpaduan antara PID sama FUZZYnya?
    maklum mas, masih amatiran belum tau apa-apa….
    kalo boleh ini email saya,
    afand@live.co.uk

    Balas

  29. Posted by arwan yusup on Juni 29, 2012 at 8:24 pm

    keren banget mas, jadi pengen tau source codenya..
    pengen ngabuatnya juga..
    maklum mas baru belajar sistem kontrol ,
    kalo boleh ini email saya mas .

    yvsvf13@yahoo.com

    Balas

  30. Posted by daniel on Juli 20, 2012 at 5:07 pm

    itu baterenya cuman satu ya….saya waktu itu pake satu kok bisa sampe kehabisan arus……

    Balas

  31. Posted by rhizuma on Juli 28, 2012 at 10:06 am

    assalamu’alaikum wr.wb
    afwan mas ana blh tanya ga, gmna cra aktivasi sensor rotary encodernya…..???

    dr kmren2 dah ana coba tp lom berhasil2….
    mhon bntuannya yy mas….
    ana tunggu jwbanny yy mas
    syukron mas…🙂

    Balas

  32. Posted by suza on September 15, 2012 at 12:54 pm

    kren mass

    lw bs mnta listing program a donk mass

    sukrin.harahap@yahoo.com

    Balas

  33. Posted by sudi on September 19, 2012 at 12:10 pm

    assalamualaikum mas,

    saya boleh minta proramnya gak mas, hehe..hehe..,
    saya juga mau buat robot line follower..
    sbelunya trimakasih banyak ya mas…

    palamat47@yahoo.co.id

    Balas

  34. Posted by agus on Oktober 18, 2012 at 10:28 am

    mas fahmi kereeeennn…hardware, elektronik n mekaniknya sangat menginspirasi saya…trmksh banyak mas postingnya sangat bermanfaat, khususnya untuk saya…mas kalo boleh minta tolong saya boleh minta programnya ga? saya lg nyusun TA mas…mohon bantuannya…n trimksih banyak…🙂
    agoii_sakuza@yahoo.com

    Balas

  35. Posted by sumartini on November 25, 2012 at 11:16 am

    blognya bermanfaat banget mas.
    mas boleh minta programnya pid+fuzzy
    buat belajar mas…

    sumartini95@ymail.com

    Balas

  36. Posted by maikal on Desember 8, 2012 at 10:23 pm

    mas saya minta juga dung programnya., please,….

    Balas

  37. Posted by ryza sheida on Januari 8, 2013 at 10:01 am

    artikelnya sangat bermanfaat gan tentang fuzzy logicnya..
    kebetulan boleh minta programnya gak gan dan kebetulan lg hampir sama dengan robot yg saya buat tetapi saya membuat robot light follower dengan menggunakan metode fuzzy logic dan saya kurang paham untuk fuzzy logic di dalam programnya barang kali agan bisa bantu untuk skripsi saya?ryzasheida07@yahoo.com

    Balas

  38. mas boleh minta programnya? pengen th lbih dlam nih… tlng krim d email y mas… wramadhani70@yahoo.com

    Balas

  39. Posted by YOS HARIS on Maret 6, 2013 at 10:47 am

    saya masih bingung gimana nentuin nilai KP, KI, ma KD nya…
    terus penggabungan antara kontrol PID sama fuzzy nya gimana nih mas???
    mohon bantuannya

    Balas

  40. boleh saya tahu bagaimana hendak convert fuzzy logic toolbox (matlab) kepada C language? Saya cuba buat fuzzy menggunakan matlab.

    Balas

  41. Posted by carlos on November 13, 2013 at 11:43 pm

    mas… saya agak bingung dengan error dan derrornya, serta penentuan nilai keanggotaannya ada dimana ya?? klw bisa ane dikirimin program lengkapnya ke email carl.siano@gmail.com

    terima kasih banyak ya gan…

    Balas

  42. Posted by farid on Desember 9, 2013 at 3:50 pm

    mas, saya mau buat aplikasi lain tapi menggunakan kontrol PID dan Fuzzy, boleh minta source codenya mas ? rencana mau saya pelajari.

    Balas

  43. makasih mas artikelnya,
    sekalian mau tanya bgmn susunan pin lcd biru??
    apa beda dgn lcd yg hijau?
    soalnya lcd yg hijau bisa tpi yg biru tdk bisa,
    lcd nya ada tampilan tapi tulisannya gak terang (redup),

    Balas

  44. Posted by agus sapta adi on Januari 2, 2014 at 12:24 pm

    mas bro boleh minta listing progamnya ??
    butuh banget mas…
    eowynrain@yahoo.com

    Balas

  45. bagus banget ne masss. saya udah bikin robotnya tuh tinggal dimasukin aja programmnya… kebetulan ane ngajar robotik lumayan buat referensi. kalo boleh minta programnnya mass
    boleh dikirim ke jjshokage@gmail.com

    Balas

  46. Posted by firdaus on Januari 9, 2014 at 11:28 am

    mas fahmi, minta codingan robot line followernya.
    email = mfirdaus094@gmail.com
    secepatnya ya mas.. buat tugas
    makasih

    Balas

  47. Posted by Maman Sulaeman on Maret 5, 2015 at 3:55 pm

    mas fahmi, utk definisi-definisi atau variabel di fuzzy logic gimana mass ?
    sy masih belum paham..

    trims..

    Balas

  48. keren mas…

    mau tanya kalau fuzzy saya implementasikan dengan program pada robot beroda bagaimna ya mas? dengan tiga buah sensor ultrasonk

    Balas

  49. luar biasa mas, sangat bermanfaat, tolong bagi programnya mas (zulkifli.rinto@yahoo.com)

    Balas

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: