rosbag 사용하기 : 토픽 녹화 및 재생 | winterblooom (EunGi Han)

rosbag 이란?

rosbag이란 ROS에서 제공하는 topic을 저장하고 저장한 topic 값을 다시 재생할 수 있는 도구

rosbag을 사용해야 하는 이유

연구를 진행하다보면 실시간을 코딩 테스트를 하며 결과를 확인하고 코드를 수정해야하는 일이 빈번하다.

하지만 그럴 때마다 매번 센서를 연결해서 실제로 구동시키기를 반복하고, 결과를 놓치게 되면 다시 테스트해야 하는 불편한 상황을 마주하게 된다.

이런 상황을 해소할 수 있는 도구가 바로 ‘rosbag’이다.

rosbag을 활용하여 테스트를 하는 과정에서 topic을 녹화하게 되면 이후 코드를 테스트 할때 실제로 센서를 연결하고 구동할 필요없이 명령어 하나로 녹화된 모든 센서의 topic이 그대로 publish 되는 것을 확인할 수 있다.

따라서 이를 활용하면 실제 차량이 없는 장소에서도 녹화된 bag 파일만 있으면 어디에서든 손쉽게 센서값을 실행하고, 확인해볼 수 있으므로 연구의 효율이 훨씬 향상될 수 있다.

rosbag 명령어

rosbag을 활용할 때 주로 사용하는 명령어들을 정리해 보겠다.

$ rosbag info <bag파일 이름>

ex) $ rosbag info my_bag_record.bag 

path:        my_bag_record.bag
version:     2.0
duration:    1:03s (63s)
start:       May 22 2022 19:31:40.79 (1653215500.79)
end:         May 22 2022 19:32:43.80 (1653215563.80)
size:        3.2 GB
messages:    12945
compression: none [3692/3692 chunks]
types:       dynamic_reconfigure/Config            [958f16a05573709014982821e6822580]
             dynamic_reconfigure/ConfigDescription [757ce9d44ba8ddd801bb30bc456f946f]
             rosgraph_msgs/Log                     [acffd30cd6b6de30f120938c17c593fb]
             sensor_msgs/CameraInfo                [c9a58c1b0b154e0e6da7578cb991d214]
             sensor_msgs/CompressedImage           [8f7a12909da2c9d3332d540a0977563f]
             sensor_msgs/Image                     [060021388200f6f0f447d0fcd9c64743]
             theora_image_transport/Packet         [33ac4e14a7cff32e7e0d65f18bb410f3]
topics:      /image_view/output                                          1845 msgs    : sensor_msgs/Image                    
             /image_view/parameter_descriptions                             1 msg     : dynamic_reconfigure/ConfigDescription
             /image_view/parameter_updates                                  1 msg     : dynamic_reconfigure/Config           
             /rosout                                                     1858 msgs    : rosgraph_msgs/Log                     (3 connections)
             /rosout_agg                                                 1846 msgs    : rosgraph_msgs/Log                    
             /usb_cam/camera_info                                        1845 msgs    : sensor_msgs/CameraInfo               
             /usb_cam/image_raw                                          1846 msgs    : sensor_msgs/Image                    
(이하 생략)