ROS di Raspberry Pi: Menggunakan rosbag untuk menyimpan data topik

Selamat siang, para pembaca!
Artikel ini adalah seri luar biasa . Ini dapat dianggap sebagai tambahan yang bermanfaat untuk artikel . Di sini saya akan berbicara tentang alat yang sangat berguna dalam ROS seperti rosbag. Yang tertarik, silakan, di bawah kucing.

Apa itu rosbag?


rosbag memungkinkan Anda untuk menyimpan data yang diterbitkan dalam topik ROS ke file khusus dengan ekstensi tas. Kemudian file-file ini dapat diputar menggunakan rosbag yang sama; data akan dipublikasikan dalam topik yang sama dengan yang mereka publikasikan pada awalnya. Hal ini memungkinkan, misalnya, untuk mensimulasikan penerimaan data dari sensor tanpa adanya.

Menulis data dari topik ke file tas


Sebagai contoh, kami akan merekam data dari kamera Raspberry Pi. Jika kami mengingat artikel tempat kami menerima aliran video dari kamera dan menerbitkannya di topik image_raw. Sekarang kita hanya akan menggunakan simpul ROS yang sama untuk menerima data untuk direkam. Kami akan merekam aliran video dari image_raw topik ke file rosbag raspicam_image_raw.bag, dan kemudian memutarnya, menerima aliran asli tanpa menggunakan kamera.

Jadi, mulailah node raspi_cam_ros:

rosrun raspi_can_ros capture

Tampilkan daftar topik aktif:

rostopic list

Di antara topik yang akan kita bahas adalah image_raw. Sekarang kita akan menggunakan rosbag untuk merekam topik:

rosbag record /image_raw -o raspicam_image_raw

Kami akan merekam beberapa menit dari aliran video. Lebih baik tidak menulis stream yang sangat panjang, karena file bag menempati tempat yang layak dalam memori. Sebagai contoh, rekaman saya dalam satu setengah menit membutuhkan 90 MB.
Pertama, mari kita lihat apa isi file tas kami:

rosbag info < >

path:        2016-05-07-13-00-23.bag
version:     2.0
duration:    55.1s
start:       May 07 2016 15:00:24.86 (1462626024.86)
end:         May 07 2016 15:01:19.96 (1462626079.96)
size:        89.7 MB
messages:    102
compression: none [102/102 chunks]
types:       sensor_msgs/Image [060021388200f6f0f447d0fcd9c64743]
topics:      /image_raw   102 msgs    : sensor_msgs/Image


Menerobos data file tas


Sekarang hentikan simpul kami dan mainkan rekaman:

rosbag play raspicam_image_raw.bag -r 1 --loop

Kami menampilkan data dari topik image_raw di jendela rqt_image_view:

rosrun rqt_image_view rqt_image_view

Pemutaran rekaman file tas pada Raspberry Pi 2 dapat dilihat dalam video.



Tim bermain rosbag juga memiliki beberapa opsi berguna:
  • -r FACTOR menentukan faktor kecepatan (frame rate dikalikan dengan nilai ini)
  • -hz = HZ menentukan frame rate dalam Hz (standarnya adalah 100)
  • --Loop loop melalui pemutaran ("mundur" ke awal ketika mencapai akhir rekaman)

Ada alat khusus rqt_bag untuk merekam dan bekerja dengan file tas. Di halaman resmi Anda dapat mempelajari lebih lanjut tentang utilitas ini.
Untuk saat ini, itu semua tentang rosbag. Saya pikir Anda akan menemukan banyak kegunaan untuk utilitas rosbag. Ini adalah utilitas yang cukup kuat dan sulit dilakukan tanpanya ketika menggunakan ROS sepenuhnya.
Semoga berhasil dalam proyek Anda menggunakan ROS!

Source: https://habr.com/ru/post/id393811/


All Articles