ROS - Robotic Operating System

Pada saat inilah mulai saya mengerti, apa gunanya kita memakai middleware ROS (www.ros.org)... Buaaanyaaak sekali.. hehehe.
Dasar kurang pinter ya begini, padahal saya sudah tahu dari beberapa tahun yang lalu.. tapi memang karena kurang mudeng, dan dukungan support hardware yang masih minim, jadi saya tidak memakai ROS.
Konsep dasarnya begini. ROS memberikan istilah Nodes kepada tiap elemennya, bisa wujud hardware atau wujud konseptual. Nah dengan ROS kita dapat mempermudah sistem pemindahan data antar NODES, dengan sistem TOPIC.
Bayangkan TOPIC ini semacam Papan Informasi yang tiap Nodesnya dapat melihat atau menaruh informasi. Bayangin aja Mading jaman SMA.. hehehe..

Misalnya kita membuat robot sederhana menggunakan 4 nodes.

2 Nodes warna biru adalah nodes yang menggunakan hardware. Satu usb camera dan yang satu lagi adalah motor penggerak / servo.

2 Nodes kuning adalah nodes yang konseptual, artinya hanya ada secara konsep. Tidak ada benda fisiknya. Namun kita dapat membuatnya di ROS. Masing masing nodes itu adalah sebuah program yang di buat dengan bahasa pemrogramman cpp atau python.

Nah setelah menentukan nodes, kita dapat menentukan Topik, pengembangannya sbb.


Tiap -tiap nodes terhubung melalui sebuah topik khusus. Nodes Camera mem'publish' Topik Landmark Visual. Isi dari Topik ini adalah data yang ditangkap oleh kamera. Namun data ini berguna bagi nodes visualisasi titik lokasi, nodes ini 'subscribe' ke topik tsb, mengambil datanya.. lalu mengolahnya menjadi data yang berguna untuk menentukan titik kordinat robot sekarang.

Nah setelah kita dapat menentukan dimana posisi robot maka node ini akan mempublish ke topik yang berhubungan dengan navigasi. Maka nodes navigasi akan mengambil data tsb untuk diolah menjadi arah navigasi robot mau kemana.
lalu Nodes motor / servo mengambil lagi data olahan tersebut menjadi gerak daripada robot.

Tentunya ini hanya gambaran yang sangat disederhanakan. Inti dari menggunakan ROS ini adalah...
Banyaknya Nodes yang ditulis oleh programmer-programmer lain.
Artinya kolaborasi menjadi penting, dan banyak code yang dapat di pergunakan secara berulang-ulang.

Nodes / fasilitas ROS yang sangat menarik saya meliputi.

  • Navigasi / Slam / Vslam / gMapping
  • OpenCV (Computer Vision)
  • 3D Manipulator (Kalau mau buat robot tangan)
  • Debugging tools
  • Nodes dapat terdistribusi... artinya Nodes bisa berada di mesin lain yang terkonek secara network.
  • SMACH - Logika / prioritas.
  • Koneksi ke ARDUINO.. yipeee..
  • dan banyak lainnya.. wweeewww....
Terima kasih.. nanti saya terusin lagi.. so excited untuk ngoprek