Tuesday, July 22, 2008

Hidup Bersama Robot di Masa Depan

Salah satu kenangan saya paling manis sewaktu kanak-kanak adalah bermain-main dengan robot mainan yang pakai baterai. Robot ini bisa berjalan lurus, kemudian berhenti, badan berputar dan menembak dengan senapan mesin yang keluar dari dadanya, untuk kemudian berjalan kembali.

Angan-angan saya dulu adalah betapa menyenangkannya kalau nanti saya punya robot robot betulan yang bisa menemani dan membantu saya dalam kegiatan sehari-hari :)

Robot sebenarnya sudah lama dipakai di dalam industri, misalnya perakitan mobil…. Robot sangat akurat, cepat, dan tidak pernah merasa bosan melakukan suatu hal yang berulang-ulang.

Namun robot yang bisa meniru manusia berbeda dengan robot di perakitan mobil. Robot manusia memutuskan tindakan apa yang harus dilakukan berdasarkan input-input yang diterima melalui beberapa sensornya, misalnya kamera (=mata), microphone (=telinga), dan sebagainya…

 image

Jika manusia sangat mudah membedakan objek melalui kamera atau microphone, maka tidak demikian halnya dengan komputer/robot. Sangat sulit membuat program yang bisa membedakan antara cangkir dan gelas. Sama sulitnya dengan membuat program yang bisa membedakan suara percakapan manusia dengan suara latar belakang….

Keinginan manusia untuk membuat robot yang cerdas sudah lama sekali, dan sudah banyak upaya untuk merealisasikan keinginan ini. Salah satu usaha yang mulai berbuah adalah pertandingan robot kendaraan pada DARPA Grand Challenge th 2004. Di sini orang sudah bisa membuat kendaraan robotic pertama yang bisa berjalan sendiri sejauh 12 km di gurun Mojave sebelum mesinnya rusak. Tahun berikutnya dicapai kemajuan yang luar biasa, pemenangnya bisa menyelesaikan keseluruhan track yang sepanjang 228 km dengan kecepatan rata-rata 30 km/jam !

image

Sebenarnya kita bisa bisa saja membuat program untuk robot ini dengan menggunakan bermacam-macam bahasa komputer. Tapi kalau kita mau membuat robot yang bisa ‘berpikir’, maka menulis dengan program biasa menjadi proses yang amat sulit. Kita harus menggunakan seperangkat programming tools khusus untuk keperluan robotics ini.

Microsoft merupakan salah satu perusahaan yang sangat serius mengembangkan programming tools untuk keperluan ini. Tools ini bertujuan menyelesaikan satu masalah paling pelik dalam perancangan robot : bagaimana caranya mengolah data yang datang serempak dari banyak sensor dan mengirimkan perintah yang tepat ke motor dengan cepat.

Pendekatan tradisional (menggunakan loop untuk proses yang serial) tidak bagus, karena kurang cepat. Jika pendekatan ini dilakukan, maka kita tidak akan bisa membuat robot yang naik atau turun tangga, karena bisa terjungkal karena terlalu lambat berpikirnya…

Gaya penulisan program untuk keperluan robot ini juga akan sangat berguna untuk keperluan-keperluan lain. Misalnya untuk memecah masalah yang besar menjadi banyak masalah yang lebih kecil, dan kemudian masing-masing bisa dikerjakan secara serempak menggunakan CPU multi-core.

Gaya penulisan ini disebut juga sebagai multi-threading…

Tim Microsoft yang dikepalai oleh Craig Mundie (Chief Research and Strategy Officer) menemukan metode yang disebut CCR (Concurrency and Coordination Runtime). CCR merupakan library dari fungsi-fungsi pemrograman yang sangat bermanfaat untuk pemrograman multi-threading pada CPU multi-core dan multi-processor.

Teknologi ini kemudian menjadi bagian penting dari produk Microsoft Robotics Studio. Di dalamnya ada tools yang memungkinkan developer membuat bermacam-macam aplikasi robot menggunakan bermacam-macam bahasa pemrograman. Ada juga tools yang memungkinkan kita membuat model virtual 3D dan melihat aksinya sebelum robot yang sebenarnya dibuat nantinya.

image

Microsoft terkenal sebagai satu perusahaan software yang mampu mendorong kemampuan semua perangkat hardware sampai limitnya. Software robotics toolkits ini juga akan memaksa semua multicore CPU sampai limitnya.

Salah satu percobaan terbaru yang memanfaatkan robotics toolkits ini adalah pemanfaatan robot sebagai resepsionis kantor. Sebagaimana resepsionis manusia yang normal, resepsionis robot ini akan menyapa setiap tamu yang mendekat, dan menanyakan keperluannya. Jika orang-orang berkerumun, maka resepsionis bisa meminta tamu-tamu untuk berbaris, kemudian satu-persatu akan dilayani.

Untuk pekerjaan manusia, mungkin melayani tamu bukan pekerjaan sulit. Tetapi dalam kasus robot resepsionis ini, ternyata pada saat idlepun (tidak ada tamu satupun) penggunaan CPU multicore (pada percobaan menggunakan CPU QuadCore tercepat saat ini) sangat tinggi, mencapai rata-rata 40 % …. – hal ini normal saja, karena robot selalu siaga dan selalu melakukan prediksi tindakan2 apa yang akan dilakukan berdasarkan semua informasi yang diterimanya. Meskipun informasinya adalah “saat ini sedang tidak ada orang”. Ini juga normal untuk kasus manusia, di mana otak manusia juga tidak pernah berhenti bekerja (idle), kecuali manusia tersebut sudah meninggal…

Penggunaan CPU yang tinggi tersebut, tentu saja akan menurun dengan significant seiring dengan makin cepatnya CPU di setiap kemajuan generasi sesuai dengan hukum Moore. Sehingga suatu saat nanti dimana teknologi multicore sudah sedemikian majunya maka kita akan mulai melihat robot-robot berbentuk manusia yang intelligent dan mampu menggantikan banyak tugas, seperti resepsionis, satpam, pembantu rumah tangga dan sebagainya.

No comments: