Selamat datang di sonoku.com

Membuat ROS publisher menggunakan rospy dan python di Raspberry Pi

Pada tutorial ini Raspberry Pi (Raspi) disetup sebagai master dan PC/Laptop sebagai slave. Pada Raspbery Pi di-install ROS Melodic demikian juga PC/Laptop dengan OS Ubuntu di-install ROS Melodic. Kedua mesin ini saling terkoneksi via internet tethering dari handphone. Anda bisa mengkoneksikan keduanya melalui perangkat lain, misal modem atau router wifi di rumah.

Tutirual ini menggunakan package rospy dan std_msg  yang biasanya sudah ada pada saat kita menginstall ROS.

Untuk membuat Raspi menjadi master lakukan langkah berikut:

1. Cari IP dari Raspi dengan perintah ifconfig

2. Edit file ~/.bashrc, dengan perintah

kemudian tambahkan parameter ROS_IP dan ROS_MASTER_URI, berikutnya simpan

Menjadikan PC/Laptop sebagai slave:

1. Cari IP dari Laptop dengan perintah ifconfig

2. Edit file ~/.bashrc, dengan perintah

kemudian tambahkan parameter ROS_IP dan ROS_MASTER_URI, berikutnya simpan

Kode Program Publisher

Kita tambahkan node publisher di Raspi yang bertugas mempublikasi messages berupa nilai string. Kode program ditulis menggunakan python di Raspi.

Pertama buat folder di catkin_ws/src, misal namanya ‘test_pub’

Kemudian buat file python “pub1.py” menggunakan IDE yang anda sukai letakkan pada folder test_pub yang baru saja dibuat. Kode programnya sebagai berikut:

Menjalankan Publisher

Setelah selesai set file pub1.py agar dapat dieksekusi dengan perintah:

Berikutnya build workspace dengan perintah:

Kita bisa coba untuk jalankan publishernya kemudian dimonitoring (subscribe) isi messagesnya oleh slave (laptop). Pertama jalankan roscore di Raspi,

Kemudian jalankan perintah rosrun untuk mulai

Dengan demikian master akan mempublikasikan semua nilai string seperti yang ditunjukkan pada gambar berikut:

Memantau topic dari master

Kemudian pada slave (laptop) kita bisa monitor messages yang di-publish oleh master. Namun sebelumnya pastikan bahwa slave sudah dapat membaca topic yang sedang dipublish dengan perintah $ rostopic list . Hasil perintah ini akan menampilkan beberapa topic yang sedang dipublish, untuk kasus kita nama topicnya adalah “/string_publish”. Untuk menampilkan isi dari messages yang dipublish kita bisa gunakan perintah

Hasilnya terminal akan menampilkan pesan seperti yang dipublish oleh master (Raspi) seperti  tampak pada gambar berikut:

Dengan demikian dapat disimpulkan antara master (Raspi) dapat mempublish sebuah topic dan slave (laptop) dapat subscribe topic tersebut dan menampilkan pesan (messages) pada topic yang sedang disubcribe. Kita dapat membuat kode program untuk membaca pesan dari publisher menggunakan pyhton. Kita juga dapat mengembangkan prinsip dasar ini misalnya untuk publish sebuah nilai pembacaan sensor suhu atau kelembaban untuk kemudian ditampilkan hasilnya di komputer slave.