[ROS] rosbag이란? rosbag 관련 명령어는?

HY K·2024년 8월 8일

ROS1

목록 보기
16/34

이번에는 ROS에서 파일을 저장하고 재생할 수 있는 bag, 그리고 관련 명령어에 대해서 알아보자..

참고한 링크는 다음과 같다.
https://cafe.naver.com/openrt/2852
https://wiki.ros.org/ROS/Tutorials/Recording%20and%20playing%20back%20data
https://wiki.ros.org/ROS/Tutorials/reading%20msgs%20from%20a%20bag%20file

💡 bag 파일이란?
ROS에서 주고받는 메시지의 데이터를 저장할 수 있는데, 이러한 파일을 bag이라고 한다. ROS에서는 bag을 이용해서 메시지를 저장하고, 필요로 할 때 이를 재생하여 이전 상황 그대로 재현 가능하다.

1. rosbag record [option][topic_name]

$ rosbag record <option> <topic_name>

사용 중인 토픽 중에서 기록하고자 하는 토픽을 옵션으로 입력해서 bag 기록을 시작한다. 기록 종료는 Ctrl + C로 종료한다.

$ rosbag record -a

특정 토픽이 아니라 모든 토픽을 기록하고 싶을 때 사용한다.

$ rosbag record -O <file_name> <topic_name>

-O 옵션을 사용하면 내가 원하는 파일 이름으로 bag 파일을 만들 수 있다.

2. rosbag info [bag_file_name]

$ rosbag info <bag_file_name>

bag 파일의 정보를 확인할 수 있다. 사용된 메시지의 타입, 메시지의 개수, 경로, bag 버젼, 시간 등의 정보를 확인할 수 있다.

3. rosbag play [bag_file_name]

$ rosbag play <bag_file_name>

기록해둔 rosbag 파일을 재생하는 명령어이다.

4. rosbag compress [bag_file_name]

$ rosbag compress <bag_file_name>

장시간의 bag 파일을 기록할 때 용량을 줄이기 위해서 압축하기 위해 사용한다. 압축 전 원본 파일은 orig라는 이름이 추가되어 별도로 저장된다.

5. rosbag decompress [bag_file_name]

$ rosbag decompress <bag_file_name>

압축을 해제하고 싶으면 사용한다.

6. rosbag filter [input_bag_file][output_bag_file] [option]
지정된 내용을 제거한 새로운 bag 파일을 생성한다. 잘 안쓰인다.

7. rosbag reindex [bag_file_name]
인덱스를 재색인한다. 잘 안쓰인다.

8. rosbag check [bag_file_name]
지정한 bag 파일이 현재 시스템에서 재생 가능한지 확인한다. 잘 안쓰인다.

9. rosbag fix [input_bag_file][output_bag_file] [option]
버전이 다른 재생 불가능 bag 파일을 재생 가능하게 수정한다. 잘 안쓰인다.

profile
로봇, 드론, SLAM, 제어 공학 초보

0개의 댓글