Guten Tag, liebe Leser!Dieser Artikel ist eine außergewöhnliche Serie . Es kann als nützliche Ergänzung zum Artikel angesehen werden . Hier werde ich über ein so nützliches Werkzeug in ROS wie Rosbag sprechen. Wer interessiert sich bitte unter der Katze.Was ist Rosbag?
Mit rosbag können Sie in ROS-Themen veröffentlichte Daten in speziellen Dateien mit Taschenerweiterung speichern. Diese Dateien können dann mit demselben Rosbag wiedergegeben werden. Die Daten werden zu denselben Themen veröffentlicht, zu denen sie ursprünglich veröffentlicht wurden. Dies ermöglicht es beispielsweise, den Empfang von Daten von Sensoren zu simulieren, wenn solche nicht vorhanden sind.Schreiben von Daten aus dem Thema in die Beuteldatei
Zum Beispiel werden wir Daten von der Raspberry Pi-Kamera aufzeichnen. Wenn wir uns an den Artikel erinnern, in dem wir den Videostream von der Kamera erhalten und im Thema image_raw veröffentlicht haben. Jetzt verwenden wir nur denselben ROS-Knoten, um Daten für die Aufzeichnung zu empfangen. Wir zeichnen den Videostream vom Thema image_raw in die Rosbag-Datei raspicam_image_raw.bag auf und spielen ihn dann ab, wobei wir den Original-Stream ohne Verwendung der Kamera empfangen.Starten Sie also den Knoten raspi_cam_ros:rosrun raspi_can_ros capture
Liste der aktiven Themen anzeigen:rostopic list
Zu den Themen gehört unser Thema image_raw. Jetzt werden wir Rosbag verwenden, um das Thema aufzuzeichnen:rosbag record /image_raw -o raspicam_image_raw
Wir werden einige Minuten des Videostreams aufnehmen. Es ist besser, keine sehr langen Streams zu schreiben, da Bag-Dateien einen anständigen Platz im Speicher einnehmen. Zum Beispiel dauerte meine Aufnahme in anderthalb Minuten 90 MB.Lassen Sie uns zunächst sehen, was unsere Taschendatei enthält: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
Durchbrechen Sie die Daten der Beuteldateien
Stoppen Sie jetzt unseren Knoten und spielen Sie die Aufzeichnung ab:rosbag play raspicam_image_raw.bag -r 1 --loop
Wir zeigen die Daten aus dem Thema image_raw im Fenster rqt_image_view:rosrun rqt_image_view rqt_image_view
Die Wiedergabe des Bag-File-Datensatzes auf dem Raspberry Pi 2 ist im Video zu sehen.Das Rosbag-Spielteam hat auch mehrere nützliche Optionen:- -r FAKTOR bestimmt den Geschwindigkeitsfaktor (Bildrate wird mit diesem Wert multipliziert)
- -hz = HZ bestimmt die Bildrate in Hz (Standard ist 100)
- --loop durchläuft die Wiedergabe ("Zurückspulen" zum Anfang, wenn das Ende der Aufnahme erreicht ist)
Es gibt ein spezielles Tool rqt_bag zum Aufzeichnen und Arbeiten mit Beuteldateien. Auf der offiziellen Seite erfahren Sie mehr über dieses Dienstprogramm.Im Moment dreht sich alles um den Rosensack. Ich denke, Sie werden viele Anwendungen für das Rosbag-Dienstprogramm finden. Dies ist ein ziemlich leistungsfähiges Dienstprogramm, und es ist schwierig, darauf zu verzichten, wenn ROS vollständig verwendet wird.Viel Glück bei Ihren Projekten mit ROS!