Monday, July 3, 2006

Soccer Robot


Dalam rangka menyelesaikan tesis, saya mengambil topik Implementasi Obstacle Avoidance pada Soccer Robot. Sebenarnya, tidak mirip-mirip amat dengan soccer robot yang secara rutin dipertandingkan di Robocup (http://robocup.org ). Tapi saya mencoba melakukan satu riset awal dalam implementasi soccer robot, yang diharapkan dapat diteruskan baik oleh saya maupun oleh para penerus saya (ciee... penerus... :D ).
Ya, pada intinya, saya membuat sebuah robot tunggal dengan platform berupa mobile robot ( ini adalah bahasa umum di kalangan researcher robotika untuk robot-robot yang dapat melakukan perpindahan dengan menggunakan roda ). Bentuk jadinya seperti gambar berikut :



Mengenai detil bangunan robotnya, saya tidak bahas di sini, tapi pada dasarnya, robot saya memiliki :


a. Sensor-sensor : sensor jarak infrared GP2D12 sebanyak 5 buah ( 4 di depan dan 1 di belakang ), sensor kamera CMUCam I yang terpasang statis dan menghadap ke depan, sensor kompas digital Devantech Magnetic Compass CMPS03, sensor bola yang khusus berfungsi mengidentifikasi apakah bola sudah ter-handle atau belum.

b. Sistem pengaturan berupa Handyboard (http://handyboard.com ) yang meng-handle pengambilan data dari semua sensor, mengolah data sensor dan mengambil keputusan berupa perintah kepada aktuator ( roda )

c. Aktuator berupa Dua buah roda aktif . Masing-masing roda aktif diputar dengan menggunakan motor DC.

RoboCup : Apa Itu ?

RoboCup.... Apa itu ?

RoboCup adalah satu turnamen robot yang diadakan sekitar tahun 1997, sebagai satu langkah peneliti di bidang kecerdasan buatan dan robotika untuk lebih mengembangkan kreativitas para hobbyist maupun peneliti di bidang kecerdasan buatan dan robotika. Bagi peneliti di bidang kecerdasan buatan, yang waktu itu didanai oleh IBM, tahun 1997 merupakan satu titik balik, di mana pada tahun tersebut riset unggulan mereka, yaitu software catur yang paling cerdas, Deep Blue, berhasil mengalahkan Garry Kasparov, sang juara dunia versi FIDE ( Federation Internationale des Echecs - Organisasi Catur Internasional ) -- lihat [1].
Setelah kemenangan Deep Blue atas Garry Kasparov, maka peneliti kecerdasan buatan ( atau lebih dikenal dengan Artificial Intelligence ) mulai merintis jalan ke implementasi kecerdasan buatan yang lebih keren, yaitu tim robot yang dapat bermain sepakbola. Sebenarnya, idenya sudah ada sejak tahun 1992 oleh Prof. Alan Mackworth ( http://www.cs.ubc.ca/spider/mack/ )dari University of British Columbia, Canada.
Akhirnya, pada tahun 1997, International Joint Conference on Artificial Intelligence ( IJCAI ) mengadakan World Cup Soccer Games yang pertama, dengan hanya memperlombakan 1 kategori saja, yaitu Large Robot. Pada saat itu, pesertanya 40 tim. Cukup menakjubkan untuk event pertama.
Saat ini, RoboCup diadakan setiap tahun, dan jika ada event-event penting seperti World Cup atau European Cup, lomba ini diadakan pada waktu dan tempat yang sama dengan event-event tersebut.
RoboCup 2006 diadakan di Jerman, tepatnya di Bremen pada tanggal 14-20 Juni 2006, dengan mempertandingkan banyak kategori, antara lain [2] :
a. Simulation
b. Small Size
c. Middle Size
d. 4-legged
e. Humanoid
Bahkan bukan hanya untuk bermain sepakbola saja. ROboCup sekarang juga memperlombakan Robot-robot Rescue dan RoboCup Junior.
Selanjutnya bagaimana ceritanya ? Tetap stay tune di blog ini :)
Referensi :
[1] A Brief History of RoboCup. http://www.robocup.org/overview/23.html
[2] RoboCup Official Site. http://www.robocup.org

Beberapa Catatan Tentang Membuat Robot

Jika dilihat sekilas, kita melihat robot sebagai suatu sistem yang sangat complicated alias rumit. Kerumitan ini disebabkan kita melihat banyaknya aspek yang membangun sebuah robot. Yang paling terlihat adalah aspek mekanis dan aspek elektronik. Aspek mekanis misalnya : sumbu gerak roda (jika robot anda merupakan mobile robot ), lengan ( jika robot anda merupakan robot manipulator ). Sedangkan aspek elektronik misalnya : sistem pengendali (misalnya menggunakan mikrokontroler ).

Jika yang terlihat oleh Anda adalah kedua aspek tersebut, kita bisa pilah-pilah kedua aspek tersebut ke dalam beberapa aspek yang lebih kecil. Untuk aspek mekanis, kita dapat uraikan ke dalam beberapa masalah, antara lain :

a. Sistem mekanis aktuatorb. Keseimbangan massa robotc. Gaya yang diperlukan untuk menggerakkan aktuator (aspek dinamika)d. Path yang dibentuk dari pergerakan aktuator (aspek kinematika ) Sedangkan untuk aspek elektronik, kita juga dapat uraikan ke dalam beberapa masalah :a. Sistem pengendali, biasanya menggunakan mikrokontroler, dan beberapa hobbyist robotik lebih memilih membeli sistem mikrokontroler (sistem mikrokontroler plus elemen-elemen interfacing, port-port input dan output kosong yang dapat dikoneksikan ke elemen seperti sensor, aktuator, atau sistem mikrokontroler lain, dan sistem komunikasi )

b. Interfacingc. Sensor-sensord. Rangkaian driver aktuatore. Rangkaian / board dengan kegunaan khusus yang bisa dicangkokkan ke sistem utama, sehingga dapat membentuk embedded system.Poin-poin di atas masih bisa berkembang, tergantung pengetahuan dan pengalaman masing - masing orang.


Sebenarnya jika kita menggunakan sistem mikrokontroler, ada lagi satu aspek yang harus diperhatikan, yaitu software. Dengan software, kita dapat merancang suatu aliran proses yang dapat mengendalikan robot sehingga robot dapat melakukan suatu misi.Contoh “misi” adalah sebagai berikut : Misalnya robot pemadam api pada sebuah labirin ( yang sempat dilombakan pada Kontes Robot Cerdas Indonesia 2005 di Universitas Indonesia, Depok ). Misinya adalah menjelajahi jalur-jalur labirin, sampai menemukan adanya api. Jika api tersebut ditemukan, maka robot harus mendekati api itu dan memadamkannya. Sebuah misi yang jika dijabarkan dengan kata-kata, terlihat mudah. Tetapi dalam implementasinya pada program, kata-kata mudah ini akan berubah menjadi baris-baris instruksi yang panjaaaannnn…gggg !!!

Dalam aspek software ini, yang harus diperhatikan adalah :

a. Bahasa pemrograman apa yang dipakai, apakah menggunakan C, Assembler, atau apa ? Biasanya mikrokontroler yang berbeda mempunyai skematik yang berbeda, dan tentu saja berpengaruh terhadap bahasa pemrograman yang digunakan. Meskipun 2 mikrokontroler sama-sama diprogram dengan bahasa assembly, namun belum tentu keduanya mempunyai syntax yang sama.

b. Model pemrograman yang digunakan. Apakah anda menggunakan procedural model ? atau bahkan object-oriented programming ?

c. Keterbatasan memory. Jangan sampai program yang Anda tulis malah ukurannya terlalu besar dibandingkan dengan kapasitas memori yang tersedia.d. Keterbatasan kecepatan proses. Perhatikan performa dari sistem mikrokontroler yang Anda pakai. Biasanya bisa dilihat dari MIPS-nya (Million Instruction Per Second ). Jangan sampai Anda membuat program yang malah membuat robot tidak reaktif (robot reaktif ? nanti dibahas kok… ).

Aspek-aspek yang dijelaskan di atas akan dibahas pada artikel-artikel berikutnya. Oleh karena itu, stay tune di saluran blog ini