JavaScript is disabled or you're using old browser, please turn on your JavaScript or upgrade your browser to see fancy looking.
Archive for the ‘campus’ Category

Newer Entries   

Nustaffsite dan blognya para dosen Gunadarma

Lagi iseng-iseng googling dengan keyword gunadarma, eh nemu nustaffsite. Saya pikir itu sama dengan staffsite, lalu saya coba googling nustaffsite. Akhirnya saya mendapatkan sedikit info dari blognya Ibu ratih. Saya memang orang yang ketinggalan informasi mengenai perkembangan di kampus, maklum jarang ke kampus. Jadi sekarang setiap dosen yang sudah migrasi ke nustaffsite dapat memiliki blog. It’s cool..

Oh ya, Blog setiap dosen dapat dilihat dari link blog yang ada di setiap homesite dosen tersebut, jika belum terregistrasi pastinya akan redirect ke blank page untuk sign up new. Engine yang digunakan sepertinya wordpress-mu, multi-user WP, sama seperti yang digunakan dalam wordpress.com. Mungkin nantinya akan ada, atau sudah??, nustudentsite nya dengan blog untuk setiap mahasiswa/i nya :D

Fuzzy Logic Untuk Navigasi Robot (Bagian I)

Seperti apa yang pernah diucapkan almarhum buyut :D:

The only source of knowledge is experience

Albert Einstein

Saya ingat bagaimana saya membuat robot pertama kali dengan pengetahuan nol dalam bidang robotika dan juga elektronik. Meskipun banyak buku, artikel dan tutorial yang membahas bagaimana membuat robot dari awal, rasanya hanya akan membuat bingung dengan segudang referensi tanpa mengotori tangan dengan solder dan coding. Akhirnya saya lupakan referensi dan mengingat sebagaian referensi yang masih menyangkut di otak. Ini saatnya memakai otak untuk sedikit berpikir dan berimajinasi. Jadi teringat pesan buyut :D :

Any man who reads too much and uses his own brain too little falls into lazy habits of thinking.

Albert Einsten.

Berhubung robot yang dibuat hanya sebatas tugas lab, maka saya tidak memprioritaskan untuk membuatnya istimewa. Cukup bekerja sesuai deskripsi yang diminta. Apabila saya mengingat robot itu, saya tertawa membayangkan baris program yang sangat sederhana sekali, tapi beberapa orang melihatnya cukup serius :D. Mungkin ini juga sering terjadi apabila Anda belajar bahasa pemrograman dan sebulan kemudian melihat program Hello World. Tadinya saya berniat menaruh skematik beserta program di tulisan ini, tapi filenya entah di mana.. :D. Robot yang saya buat ini adalah light seeking, hanya menggunakan 3 LDR. Kalau tidak salah ada koran yang memuatnya (he2.. narsis).

Robot kedua yang saya buat dibuat untuk mengikuti kontes robot line follower di kampus, kontes perdana.
Masih dengan pengetahuan yang sangat minim dan agak sotoy (karena menganggap enteng) dan masih acuh terhadap sistem kontrol, maka yang terbesit saat itu hanya teknik kontrol ON-OFF. Teknik kontrol seperti ini masih bisa di terapkan di arena tak bersimpang, namun arena yang digunakan banyak terdapat simpangan, sehingga dibutuhkan teknik kontrol
yang dapat mentolelir gain motor. Hal yang pertama di lakukan adalah melakukan pendataan kondisi sensor pada garis dan menentukan aksi terhadap kondisi tersebut. Pada robot tersebut digunakan 5 sensor dengan susunan sebagai berikut :

(4)___(3)_(2)_(1)___(0)

Angka tersebut menunjukkan urutan pin pada port mikrokontroller. Untuk nilai binary dengan 4 variabel (sensor) memliki kemunkinan nilai unik (kondisi sensor) sebanyak 2^4 = 16. Tidak semua kondisi digunakan. Adapun kondisi yang perlu diprioritaskan untuk mendapatkan aksi adalah :

—————————————————-
4 | 3 | 2 | 1 | 0 | Aksi
—————————————————-
x | 0 | 1 | 0 | x | Maju
x | 1 | 1 | 0 | x | Serong kiri
x | 1 | 0 | 0 | x | banting kiri
x | 0 | 1 | 1 | x | serong kanan
x | 0 | 0 | 1 | x | banting kanan
x |1 | 1 | 1 | x | Maju
——————————————————
1 menunjukkan sensor berada pada garis.
Pengaturan jarak antar sensor disini memungkinkan 2 atau 3 sensor mengenai garis. Dengan mengabaikan sensor paling kiri (4) dan kanan (0) dan menggunakan aksi sesuai tabel, robot saya dapat berjalan cukup smooth mengikuti garis lurus. Bila terdapat jalur berupa huruf L, sensor (0) dan (4) bisa membantu. Kontrol yang digunakan hanya proportional
saja, yaitu pemberian PWM motor. Apabila diinginkan pergerakan yang lebih smooth bisa menambah kontrol derivative. Mendapatkan nilai konstanta proportional yang tepat adalah melalui test berulang kali. Ini seperti melakukan mapping input sensor terhadap output PWM motor. Nilai input disini sangat sederhana jadi tidak perlu menggunakan fuzzy logic. Beberapa orang menyebutnya dengan table lookup. Oia ini video robotnya, cupu abis :

http://www.youtube.com/v/ks1zYPqFcEI

Sialnya nih robot dah di gondol oleh orang yang tidak tahu berterima kasih tidak bertanggung jawab, tidak menghargai karya orang lain, menipu dosen (dengan mengklaim robot saya sebagai robot buatannya). Dan parahnya dia adalah seorang wanita yang seharusnya menjadi pamong bagi mahasiswa/i di filkom (ketua BEF). Astagfirullah,
mudah-mudahan Allah ta’ala memaafkannya. Saya sendiri sudah mengikhlaskannya (mudah2an). Apabila ada yang tertarik ini source codenya. Saya bukan programmer sekelas Kel, jadi masih banyak menggunakan delay. Rutin utama yang perlu diperhatikan adalah rutin scan :scan:
mov a,p1
anl a,#0eh
jz cekKiKamov p2, #66h
mundur: ;serkan / serkir / maju, 0,6,c,e
mov B, A
movc A,@A+dptr
mov pwmKi, A
mov A, B
inc A
movc A,@A+dptr
mov pwmKa, A
ret

mundur_:mov p2, #3Ch
sjmp mundur

cekKiKa:jnb sKiLuar,_kanan
_kiri: mov pwmKi,#40h
mov pwmKa,#50h
mov p2, #36h
ret

_kanan: jnb sKaLuar,mundur_
mov pwmKi,#50h
mov pwmKa,#40h
mov p2, #6Ch
ret

Pemanggilan rutin scan secara otomatis akan memandu robot untuk mengikuti track putih tanpa mempedulikan simpangan. Pertama-tama kontroler akan membaca kondisi sensor saat itu nilai sensor akan menentukan alamat pengambilan data PWM motor. Penggunaan instruksi ‘anl a,#0eh’ akan membaca 3 sensor tengah (sesuai dengan susunan sensor yang saya jelaskan di atas). Instruksi ‘jz cekKiKa’ akan mengecek nilai accumulator, apabila ‘0′ maka sensor paling ujung (0 & 4) akan dicek. Jika ada salah satu dari sensor (0) atau (4) mengenai track putih (memberikan logik ‘1′) maka robot akan spin ke arah sensor bernilai ‘1′ tersebut. Ini berguna untuk track yang memiliki belokan berbentuk huruf L. Jika 3 sensor tengah memberikan nilai ‘0′ dan tidak ada sensor (0) dan (4) yang memberikan logik ‘1′ maka robot akan mundur. Ini kurang efektif, jika saya berpikir sekarang, untuk digunakan sebenarnya. Sayangnya, rutin ini hanya bisa diimplemetasikan pada jalur lurus. Ada paper menarik, Penggunaan Kombinasi Sensor Array Depan dan Belakang pada Robot Pengikut Garis (Kasus Robot Otomatis ASKAF-i), yang menggunakan tambahan sensor belakang dalam kombinasi sensor Array. Jika Anda menginginkan navigasi line tracking yang lebih robust, paper ini dapat dijadikan acuan. Jika jalur yang digunakan tidak lurus, terdapat jalur melengkung, ada baiknya melihat robot ini.
Robot yang saya kerjakan saat ini (sudah selesai seminggu yang lalu) menggunakan fuzzy logic untuk navigasinya, baik untuk wall following (mengikuti dinding) dan obstacle avoidance (menghindari dinding). Karena menggunakan sensor ultrasonic, data untuk satu sensor tidak lagi berupa biner. Biner dalam bahasa pemrograman tingkat tinggi dapat di padankan sama halnya dengan tipe data boolean (true atau false). Engineer melihatnya sebagai level tegangan, apabila bekerja dengan komponen logika, yang mempresentasikan 0 atau 5 V. Tapi tidak absolut 0 atau 5 (tergantung spesifikasi komponen tersebut). Misal jika sebuah sensor memberi masukan 5 V, program melihatnya sebagai ‘1′ atau true, yang mengindikasikan sensor menangkap adanya objek yang berdekatan. Bila tidak objek yang menghalangi sensor dalam batas toleransinya, maka akan dihasilkan tegangan 0 V, dimana program merepresentasikan nya sebagai ‘0′ atau false. Secara sederhana program dapat di tulis seperti ini :

if (sensor==1) {
aksi(1); //aksi yang dilakukan sistem bila ada objek
} else {
aksi(0); //aksi yang dilakukan sistem bila tidak ada objek
}

Dalam teknik kontrol, ini termasuk kontrol ON-OFF. Bagaimana bila sistem yang kita inginkan dapat melakukan aksi yang berbeda untuk jarak yang sangat jauh, jarak jauh, sedang, cukup dekat dan dekat. Mungkin ini saatnya menggunakan Fuzzy logic. Teori fuzzy logic dipropose oleh seorang ahli matematika bernama Lotfi Zadeh pada tahun 1973. Sebelumnya Zadeh memperkenalkan teori fuzzy set pada tahun 1965.

Bersambung … (Ntar lagi ya lanjutinnya, banyak image nya soalnya bagian ke-II)

Intelligent Control Systems??

Beberapa hari belakangan ini gw agak sibuk ngoprek robot, sampai-sampai gw nginep di kampus selama 4 hari. Deadline untuk memberikan laporan kemajuan adalah minggu ke-3 bulan maret 2007, Jadi, selasa kemarin adalah hari terakhir. Selama 4 hari di kampus gw masih bingung bagaimana memprogram navigasi robot dengan 6 sensor ultrasonic. Ada beberapa keterbatasan, diantaranya : referensi yang tepat dan arena sementara. Arena yang dibuat masih dari kardus dan lantai karpet tanpa ada garis putih disetiap kamar. Dan juga arena masih dibuat sebatas 1 kamar dari lokasi home robot. Penggunaan kardus sangat tidak memungkinkan, karena sedikit robot menabrak akan merubuhkan atau memiringkan dinding kardus itu sendiri. Hal ini tidak memungkin terjadinya trigger untuk bumper switch. Ya, rencananya robot yang gw buat juga akan memakai bumper switch + 2 module IR (GP2D15) untuk membantu penghindaran dinding selain dari ultrasonic. Program yang gw buat juga masih ‘cupu’, sensor di trigger secara sequential dan data diretrieve satu persatu dari sensor paling kiri. Gw masih prioritaskan side kanan dan kiri, jadi bagian sensor kiri dan kanan akan dibandingkan lalu nilai komparasi akan menentukan pergerakan motor. Bagian depan sensor akan diperhitungkan setelahnya. Ugh.. wasting time. Cara yang lain yang ‘mungkin’ lebih efektif adalah memparallel semua sensor. Jadi sensor di trigger bersamaan, dan mcu akan mempolling setiap sensor untuk mengecek data yang duluan datang. Ada yang punya ide lebih baik?? Please let me know guys. Lalu dengan keterbatasan arena yang ‘baru 1/4′nya dan jauh dari realnya, bagaimana mau mensampling data sensor??

Intellient Control System belum diterapkan dalam robot. Terus terang, gw masih ngeblank abis di masalah Artificial Neural Network, Expert System dan Fuzzy Logic. Gw tipikal orang yang masih ngoprek-ngoprek dari source code yang ada, menganalisa lalu memodifikasi sesuai kebutuhan. Jadi sebenarnya ‘cepat lambatnya’ gw mengerjakan sebuah program adalah referensi source code yang berhubungan dengan objek yang sedang dikerjakan. Mungkin ini saatnya gw mulai mempelajari lagi konsep-konsep sistem kontrol cerdas. Mulai lagi deh nyari jurnal-jurnal dan e-book.

Terus bagaimana robotnya?? Ya.. kalau menghindari dinding sih dah bisa. Tapi sebenarnya di laporan kemajuan, robot sudah harus dapat menemukan dan mematikan lilin. Sensor UVTron sebenarnya sudah punya, namun belum ada waktu untuk nyobain. Ya.. gw gak berharap banyak bakal bisa diterima di tahap ke-2 ini, karena memang masih jauh dari kriteria yang diminta. Tetapi ‘kayaknya’ lolos ataupun gak lolos gw bakal ngerjain nih robot buat skripsi gw sendiri.

turbo-g summary

In Dec 19th 2006, Gunadarma University performed robot competion, called turbo-g, themed “Road to Freedom”. There are 10 competitors in this event, including me, struggle with their team(s) to get 4 possibilities (1st place, 2nd place, 3rd place & best design) as a winner. As I wish, alhamdullillah, I got 2nd place. Below is the list of the winners (im sorry if I misspell or ,maybe, give the wrong name of the team’s name with their member(s), coz I just heard from.. not read from..)

  1. 1st place : Trail Tank (Yogi & Anto).
    The only ‘one’ team who reaches finish line. The estimate time 4:xx (im not sure, but it is around 4 minutes. And I saw it from projector). This team is really calm. I like the people in this team, both (A & Y) are full of joke. Sometime we are mocking each other during quarantine time (huh not like KDI quarantine, I mean the time where we are free to test our robot in labirin).
  2. 2nd place : WedusGembel (me & kumiz).
    We got 106 points. (sure..??). With 2 scenarios prepared, MarijanBot was failed to exceed finish line. The 1st scenario is to pass the red beam (pushing a red cube filled with 1kg of sugar) then traverse the hillock. We got our 1st point after MarijanBot push out the cube. After 2 times retry (1st scenario), MarijanBot still couldn’t detects the cross-roads to turn (a way to hillock) . I thought to use the 2nd scenario after failed 2 times. In our 2nd scenario, MarijanBot can pass all inhibitions. In his way to finish line, MarijanBot strayed from scanning the line. I knew it will happen, coz i did the coding for MarijanBot & i couldn’t figure out the way to pass the cross-roads to finish way. But, like rico said, this is just a game. And i’m so happy to be a participant in this event. There are many people i’d like to thanks for helping me learning something new. Thx to Jay, the man behind the hardware & mechanical part. The man who work hard for our 4 robots ..again.. Thx a lot Jayadin Achmad. Thx to Mr. Musa for giving me source code of your line tracker robot, which MarijanBot derived from. Thx to Rico.. for the suggestions.
  3. 3rd place : Gandalf (Lutfi, Anto, Diecy, Dhani, Didin & … ).
    Others thought this team will be the 1st winner. When testing time (a week before), I saw their robot could reach finish line succesfully with different scenarios. Weew.. this will be the hard enemy for MarijanBot. After that day, the labirin has to be repaired, refixed for the truth place. What a surprise..??! It has major changes (repainted), different light ambiences and white line added in start line. Hmm.. recalibrating (sensor(s)) and recoding for the robot needed huh.. What a surprise..??! Gandalf’s robot has a problem. Ohh my.. ohh my.. .This is a lesson for us to looking out different conditions. Gandalf reach about 56 points (CMIIW) during the competition.
  4. Best design ..again.. Gandalf.
    Now you get the prize same with me.

Although only four prizes prepared for the winners, other teams also get money (the remainder donation..). I want to tell you about other teams that belong to me. These team are : NoL (Nothing to Lose), WildGeek, & the last one is (sorry i forgot the name..) reno’s team (with anton). I’d like to alpologize to all my friend (other teams that belong to me) if I couldn’t help you finishing up the coding. As you can see, MarijonBot isn’t yet completely finished. We are all the winners, like onay said, and this just a game, just what rico said before. I knew what kind of embarrassment to see your robot acts roughtly (just written in less than 100 line of code). A day day before I couldn’t focused for 4 robots, so i was decide to focus for MarijanBot only. Other friend hope that one of these robot could be a winner and Alhamdullilah we got 2nd place. Among the other competitor, we’re (four teams we have built) the one who got the biggest prize. Let me calculate :

  • The 1st winner (Trail Tank) got Rp 2.000.000,00 + Rp 250.000,00 (the remaider donation) = Rp 2.250.000,00
  • The 2nd winner (us) got Rp 1.500.000,00 + (Rp 250.000,00 x 4) = Rp 2.500.000,00
  • The 3rd winner + best design category they get + the remaider donation; Rp 1.000.000,00 + Rp 500.000,00 + Rp 250.000,00 = Rp 1.750.000,00

After the event is end, we were lunch together (me, Onay, Tato, Kumiz, Reno, Anton & Bali). Jay, the one who work really hard for us, couldn’t present during the competition because of his body was dropped out. He was stay up on 2 night, so take more rest bro. OK that’s all i’ve to say.. sorry no screenshoot here..

turbo-g progress

At morning, in my home, i decided to go to depok after my hosting account activated. But it took long time to confirm & make sure the billing division.. and until i wrote this post.. the account not yet activated. *weleh..*. :p
Abis ntuh satu lagi account gw, dah aktif sih, di tempat hosting yg berbeda. Blom di konfirm juga permintaan domain name gw, padahal gw dah ngasih informasi bbrp hari sebelumnya.. duh mak.. makin punyeng..
Mungkin karena gw nya yg gak sabaran, apalagi registrasi domain .id, menunggu waktu. Masalahnya, nih bulan menjadi bulan penuh aktifitas…

  • next week, insyaallah, abang gw satu-satu nya mo married
  • kamis minggu ini ada uts
  • alat PI yg nitip, lhah..!!
  • Turbo-g, 3 robot blom finish2 man…
  • dan yg terakhir terpenting adalah skripsi gw yg masil NOL…

Ughh.. mumet tenan.. dah gitu gak tau ns buat hostingan gw, pake plesk pertama kali nih. Blom ngeliat tutor flash nya sih.. males kalee!! Dah ah.. mending gw cabut ke kampus daripada melototin inbox yg gak berubah-ubah, malah bisa-bisa jatah internet sebulan abizz.. cebar-cebur.. (mandi) berangkat nebenk uncle..

ampe kampus, langsung ke lab x-jarkom truzz di kasih tau pengumuman (track dipake cuman ampe tgl 13 dec).. wua..
3 robot blom finish2 cuy..

oia nih skrinsut nya :

Free Image Hosting by FreeImageHosting.net Free Image Hosting by FreeImageHosting.net Free Image Hosting by FreeImageHosting.net

Sebenarnya ada videonya, tapi belum gw convert. ntar nyusul. Dengan robot ini gw optimis bakal menjadi pemenang desain terburuk.. :0. Tapi ada pelajaran yang gw dapat, yaitu :

  1. Konsep dipikirkan matang-matang terlebih dahulu, desain dibuat, testing (with simple implementation), debugging.. baru dah realisasi
  2. Jangan ngerjain mepet deadline!
  3. Buat newbie kyk gw & lainnya (1st builder) : Jgn takut klo robot pertamamu terlihat begitu buruk, mudah2an dgn keburukan tsb dapat menjadi pertimbangan utk robot-robot selanjutnya

Skrinsut untuk robot lainnya blom bisa gw ambil, karena masih terus mengalami perubahan frame-base. Sebenarnya 3 robot ini di buat ama jay (Wildgeek), tato(NoL) n gw sendiri (WedusGembeL). Ada satu robot lagi, gw yang buat, yang masih dalam status pending (mengingat penggunaan sensor ping + lcd yang disuplai oleh batere 8 AAA NiMH, robot tidak dapat running dalam waktu lama).

Btw, thx anyway for this event where I could learn something new

Newer Entries