Tutorial Robot Operating System (Bagian 2) : Bermain dengan kura – kura Turtlesim
Sebelum memulai mengeksplorasi secara rinci bagaimana ROS bekerja, embeddednesia akan memulai dengan sebuah contoh sederhana sebagai gambaran awal tentang ROS sekaligus memastikan bahwa ROS telah terinstall dengan benar pada mesin yang telah disetup sebelumnya. Dalam eksperimen kali ini, embeddednesia akan bermain – main dengan turtlesim simulator
Pada contoh ini akan digunakan beberapa command dasar yang penting dan akan dibahas lebih mendalam pada sesi tulisan berikutnya
Dalam tutorial ini embeddednesia menggunakan Ubuntu 16.04 LTS dan ROS versi Kinetic Kame. Bagi pembaca yang belum memiliki environment ROS yang berjalan, silahkan baca tutorial sebelumnya tentang bagaimana cara menginstal ROS.
Tutorial ini juga tersedia dalam format video melalui kanal Youtube dengan judul Hello Turtlesim, jangan lupa like dan subscribe, serta gunakan kolom komentar untuk memberikan saran dan pertanyaan
ROS Master
Pertama, jalankan terlebih dahulu server ROS dengan menggunakan perintah roscore. Roscore disebut juga master atau server ros, Buka terminal baru lalu ketik command berikut
roscore
Secara default server akan di jalankan di mesin lokal. Dikarenakan koneksi dengan ROS Master menggunakan protokol TCP/IP maka secara teknis adalah mungkin jika kita ingin menjalankan server ROS pada mesin yang berbeda, selama dalam jaringan LAN yang sama.
ROS Node
Jika roscore adalah server ROS, maka aplikasi client di ROS disebut dengan istilah node. Untuk melihat node ROS yang berjalan bisa diguankan gunakan command
rosnode list.
Setelah perintah tersebut dijalankan, anda akan dapat melihat rosout sedang aktif, rosout adalah node yang berfungsi mengumpulkan informasi dan mencatat output debugging dari node lain.
Untuk melihat informasi lebih rinci dari masing – masing node, bisa digunakan perintah
rosnode info [NAMA_NODE]
Dari command tersebut dapat diketahui topic apa yang di-publish dan di-subscribe oleh node, juga service yang berjalan.
Publisher dan Subscriber
Untuk pemahaman awal, anda bisa membayangkan node sebagai seorang pelanggan dan/atau penerbit suatu majalah yang disebut topic. Node yang berfungsi sebagai subcriber akan berlangganan (subscribe) sebuah topic tertentu. Sedangkan node yang berfungsi sebagai publisher akan menerbitkan (publish) majalah kepada pelanggan – pelanggannya (subscriber). Sebuah node bisa bertindak sebagai publisher, subscriber ataupun keduanya secara bersamaan.
Turtlesim
Untuk menjalan sebuah node yang bernama turtlesim, gunakan perintah berikut pada terminal
$ rosrun [nama package] [nama node]
Node turtlesim berada di package turtlesim dengan nama turtlesim_node jadi perintah yang dimasukkan adalah
Pada jendela terminal baru, masukan kembali perintah rosnode list. dan perhatikan terdapat tambahan node aktif yaitu /turtlesim di dalam list.
Jika penasaran tentang node turtlesim, seperti sebelumnya, dapat digunakan perintah rosnode info /turtlesim
Rosnode ping
Untuk memastikan koneksi node ke server berjalan baik, bisa digunakan perintah ping seperti berikut
rosnode ping [nama node]
Turtle Teleop Key
Untuk mengendalikan gerak dari si kura – kura Turtlesim, diperlukan Node bernama turtle_teleop_key yang berada di package yang sama dengan turtlesim_node
Jika anda melihat info dari /turtle_teleop dan memperhatikan topic yang dipublish adalah /turtle1/cmd_vel merupakan topic yang sama yang disubscribe oleh /turtlesim. Melalui topic ini lah turtlesim mendapatkan informasi untuk menggerakkan kura – kura sesuai perintah keyboard dari /turtle_teleop
Rostopic echo
Topic /turtle1/cmd_vel yang dikirimkan /turtle_teleop ke /turtlesim dapat dimunculkan pada layar terminal dengan menggunakan perintah
$ rostopic echo [nama_topic]
RQT_GRAPH
Untuk memvisualisasikan hubungan antara /turtle_teleop dan /turtlesim berserta topic apa saja yang terlibat dapat digunakan perintah
rqt_graph
Kini kita telah berhasil bermain dengan kura – kura turtlesim, dan selangkah lebih baik mengenal perintah – perintah dasar yang dimiliki oleh ROS.
[…] ← Tutorial Robot Operating System (Bagian 2) : Bermain dengan kura – kura Turtlesim […]