Bonjour, chers lecteurs!Cet article est une série extraordinaire . Il peut être considéré comme un ajout utile à l' article . Ici, je vais parler d'un outil aussi utile dans ROS que rosbag. Qui sont intéressés, s'il vous plaît, sous le chat.Qu'est-ce que rosbag?
rosbag vous permet d'enregistrer les données publiées dans les rubriques ROS dans des fichiers spéciaux avec l'extension de sac. Ces fichiers peuvent ensuite être lus en utilisant le même rosbag; les données seront publiées dans les mêmes thèmes dans lesquels elles ont été publiées initialement. Cela permet, par exemple, de simuler la réception de données de capteurs en l'absence de telles données.Écriture des données du sujet dans le fichier bag
Par exemple, nous enregistrerons les données de la caméra Raspberry Pi. Si nous nous souvenons de l' article où nous avons reçu le flux vidéo de la caméra et l'avons publié dans le sujet image_raw. Maintenant, nous allons simplement utiliser le même nœud ROS pour recevoir des données pour l'enregistrement. Nous allons enregistrer le flux vidéo du sujet image_raw dans le fichier rosbag raspicam_image_raw.bag, puis le lire, en recevant le flux d'origine sans utiliser l'appareil photo.Alors, démarrez le nœud raspi_cam_ros:rosrun raspi_can_ros capture
Afficher la liste des sujets actifs:rostopic list
Parmi les sujets sera notre sujet image_raw. Nous allons maintenant utiliser rosbag pour enregistrer le sujet:rosbag record /image_raw -o raspicam_image_raw
Nous enregistrerons quelques minutes du flux vidéo. Il est préférable de ne pas écrire de flux très longs, car les fichiers bag occupent une place décente dans la mémoire. Par exemple, mon enregistrement en une minute et demie a pris 90 Mo.Voyons d'abord ce que contient notre fichier bag: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
Percer les données du fichier bag
Arrêtez maintenant notre nœud et jouez le record:rosbag play raspicam_image_raw.bag -r 1 --loop
Nous montrons les données de la rubrique image_raw dans la fenêtre rqt_image_view:rosrun rqt_image_view rqt_image_view
La lecture de l'enregistrement du fichier de sac sur le Raspberry Pi 2 peut être vue dans la vidéo.L'équipe de jeu rosbag a également plusieurs options utiles:- -r FACTOR détermine le facteur de vitesse (la fréquence d'images est multipliée par cette valeur)
- -hz = HZ détermine la fréquence d'images en Hz (la valeur par défaut est 100)
- - boucle en boucle à travers la lecture ("rembobine" au début quand il atteint la fin de l'enregistrement)
Il existe un outil spécial rqt_bag pour enregistrer et travailler avec les fichiers bag. Sur la page officielle, vous pouvez en savoir plus sur cet utilitaire.Pour l'instant, tout tourne autour du rosbag. Je pense que vous trouverez de nombreuses utilisations pour l'utilitaire rosbag. Il s'agit d'un utilitaire assez puissant et il est difficile de s'en passer lors de l'utilisation complète de ROS.Bonne chance dans vos projets avec ROS!