pelanggan menggunakan GitHub
Oleh
chmood
Sebelumnya kita belajar bagaimana menulis sebuah penerbit simpul bergerak Husky secara acak. NAMUN: apa yang baik yang mempublikasikan semua pesan ini jika tidak ada yang ada untuk membacanya? Dalam tutorial ini kita akan menulis pelanggan yang bertuliskan posisi Husky ini dari topik Odom, dan grafik gerakannya. Bukan hanya copy-paste kode ke file teks, kita akan menarik paket yang dibutuhkan dari GitHub, praktek yang sangat umum di kalangan pengembang.
Sebelum kita mulai, menginstal Git untuk menarik paket dari GitHub, dan pygame, untuk menyediakan kami dengan alat untuk memetakan gerakan Husky ini:
sudo apt-get install git
sudo apt-get install python-pygame
Menarik dari GitHub
GitHub adalah alat populer di kalangan pengembang karena penggunaan kontrol versi - sebagian besar perangkat lunak ROS memiliki repositori GitHub terkait. Pengguna dapat "menarik" file dari server GitHub, membuat perubahan, maka "mendorong" perubahan ini kembali ke server. Dalam tutorial ini kita akan menggunakan GitHub untuk menarik paket ROS bahwa kita akan menggunakan. Langkah pertama adalah membuat direktori baru untuk menarik paket:
mkdir ~ / catkin_ws / src / ros101
cd ~ / catkin_ws / src / ros101
git init
Karena kita sekarang tahu URL yang host repositori, kita akan dengan mudah dapat menarik paket dari GitHub. Mengakses repositori menggunakan perintah berikut:
git pull https://github.com/mcoteCPR/ROS101.git
Itu dia! Anda harus melihat src dan folder peluncuran, serta CMakelist.txt dan package.xml di folder ros101 Anda. Anda sekarang memiliki paket "ros101", yang meliputi node "random_driver.cpp" dan "odom_graph.py".
Menulis pelanggan
Kami sudah melewati random_driver C ++ kode dalam tutorial terakhir, maka kali ini kita akan membahas kode python untuk odom_graph.py. Simpul ini menggunakan perpustakaan Pygame untuk melacak gerakan Husky ini. Pygame adalah satu set modul dimaksudkan untuk menciptakan video game di python; Namun, kita akan fokus pada bagian ROS kode ini. Informasi lebih lanjut tentang Pygame dapat ditemukan di situs web mereka. Kode untuk node odom_graph dapat ditemukan di:
gedit p ~ / catkin_ws / src / ros101 / src / odom_graph.py
Mari kita lihat ini baris demi baris kode:
impor rospy
dari nav_msgs.msg impor odometry
Banyak seperti C ++ kode penerbit, ini termasuk perpustakaan rospy dan mengimpor jenis pesan odometry dari nav_msgs.msg. Untuk mempelajari lebih lanjut tentang jenis pesan tertentu, Anda dapat mengunjungi http://docs.ros.org untuk melihat itu definisi, misalnya, kita menggunakan http://docs.ros.org/api/nav_msgs/html/msg/ Odometry.html. Blok berikutnya kode mengimpor perpustakaan pygame dan menyiapkan kondisi awal untuk tampilan kami.
def odomCB (msg)
Ini adalah odometry panggilan kembali fungsi, yang disebut setiap kali pelanggan kami menerima pesan. Isi dari fungsi ini hanya menarik garis di layar kami antara koordinat terakhir dibaca dari pesan posisi odometry. Fungsi ini akan terus disebut dalam lingkaran utama kami.
def pendengar ():
Baris berikut dimulai node ROS, anonim = True berarti kelipatan node yang sama dapat dijalankan pada saat yang sama:
rospy.init_node ('odom_graph', anonim = True)
Pelanggan set up node untuk membaca pesan dari "Odom" topik, yang adalah dari jenis odometry, dan panggilan fungsi odomCB ketika menerima pesan:
rospy.Subscriber ("Odom", odometry, odomCB)
Baris terakhir fungsi ini membuat node aktif sampai itu ditutup:
rospy.spin ()
Puting itu semua bersama-sama
Sekarang saatnya untuk menguji itu! Pergi ke depan dan menutup file odom_graph.py dan membangun ruang kerja Anda menggunakan fungsi catkin_make dalam direktori kerja Anda.
cd ~ / catkin_ws
catkin_make
Langkah berikutnya adalah untuk memulai simulasi Husky kami untuk memulai ROS dan semua node yang Husky terkait
roslaunch husky_gazebo husky_emepty_world.launch
Dalam tutorial ini kami telah menyediakan file peluncuran yang akan memulai random_driver dan odom_graph simpul. File peluncuran terletak di ~ / ros101 / src / peluncuran dan disebut odom_graph_test.launch. Jika Anda ingin mempelajari lebih lanjut tentang file peluncuran, periksa artikel berkas peluncuran kami pada basis pengetahuan dukungan kami. Kita sekarang akan sumber kerja kami dan meluncurkan kedua node dengan file peluncuran di jendela terminal baru.
Sumber ~ / catkin_ws / devel / setup.bash
roslaunch ros101 odom_graph_test.launch
Di sana Anda memilikinya! Pelanggan Anda tidak mendengarkan pesan pada topik Odom, dan grafik keluar jalan Husky ini.
Category
Komentar