Sebelumnya, embeddednesia telah membahas mengenai bagaimana membuat Node pada ROS yang berfungsi sebagai Publisher. Pada tulisan kali ini, embeddednesia akan melanjutkan membuat program Node yang berfungsi sebagai Subscriber dari Node yang telah dipublish oleh node publisher dari program yang sebelumnya pernah dibahas. Jika anda belum mengikuti tulisan sebelumnya tentang bagaimana membuat node publisher pada ROS, disarankan untuk membaca terlebih dahulu tulisan sebelumnya sebagai pondasi sebelum menginjak ke bahasan ini. Hal pertama yang perlu diketahui sebelum menulis program untuk mensubscribe sebuah topic adalah, anda harus mengetahui nama topic yang ingin disubscribe, beserta jenis tipe data pada message-nya. Untuk melihat topic yang sedang dipublish pada suatu environment ROS, gunakan perintah rostopic list rostopic list /chatter /rosout /rosout_agg Dalam tutorial ini, rostopic info /chatter Type: std_msgs/String Publishers: * /my_talker (http://ROS-16:46041/) Subscribers: None Dari informasi tersebut, diketahui bahwa topic chatter memiliki message yang berjenis Program tersebut terdiri dar dua bagian besar, fungsi Perintah subscribe diberikan oleh fungsi Fungsi Sama seperti di tulisan sebelumnya, untuk mengcompile, menjadikan source code menjadi binary. Ubah CMakelist.xml, tambahkan 3 baris sebagai berikut Gunakan perintah catkin_make, untuk meng-compile program. Jangan lupa untuk selalu berada posisi root workspace ketika akan melakukan compile program catkin_make Base path: /home/robot/kinetic_workspace Source space: /home/robot/kinetic_workspace/src Build space: /home/robot/kinetic_workspace/build Devel space: /home/robot/kinetic_workspace/devel Install space: /home/robot/kinetic_workspace/install Running command: “make cmake_check_build_system” in “/home/robot/kinetic_workspace/build” Running command: “make -j1 -l1” in “/home/robot/kinetic_workspace/build” [100%] Built target simple_listener Jika tidak ada error, maka proses build berjalan sukses, jalankan program dengan menggunakan perintah rosrun. Sebelumnya, pastikan master ros (roscore) dan node simple_publisher telah running sebelum node simple_listener dijalankan, masing – masih di jendela terminal yang terpisah roscore rosrun tutorial_ros simple_talker rosrun tutorial_ros simple_listener Perhatikan pada jendela terminal simple_listener menampilkan data yang dikirim pada jendela terminal simple_publisher rosrun tutorial_ros simple_listener [ INFO] [1517350009.193051310]: I heard: [Hi, this is my_talker 104] [ INFO] [1517350009.292889810]: I heard: [Hi, this is my_talker 105] [ INFO] [1517350009.392951414]: I heard: [Hi, this is my_talker 106] [ INFO] [1517350009.492990666]: I heard: [Hi, this is my_talker 107] [ INFO] [1517350009.592750328]: I heard: [Hi, this is my_talker 108] [ INFO] [1517350009.692884766]: I heard: [Hi, this is my_talker 109] Untuk menampilkan info dari node listener, gunakan rosnode info /listener -------------------------------------------------------------------------------- Node [/listener] Publications: * /rosout [rosgraph_msgs/Log] Subscriptions: * /chatter [std_msgs/String] Services: * /listener/set_logger_level * /listener/get_loggers contacting node http://ROS-16:33887/ … Pid: 5022 Connections: * topic: /rosout * to: /rosout * direction: outbound * transport: TCPROS * topic: /chatter * to: /my_talker (http://ROS-16:36681/) * direction: inbound * transport: TCPROS Sedangkan untuk melihat visualisasi yang terjadi pada masing – masing node, gunakan Dari gambar dapat diketahui bahwa node Terkait |