ROS2 Bag 데이터 기록 및 분석 방법

기본 사용법

ros2 bag record 명령어를 통해 로봇 운영 시스템(ROS) 내 주제들(토픽)의 데이터를 기록할 수 있습니다. 기록을 중지하려면 Ctrl+C를 입력하면 되며, 자동으로 현재 디렉터리에 rosbag2_YYYY_MM_DD-HH_MM_SS 형식의 폴더가 생성되며, .yaml.db3 파일이 포함됩니다.

ros2 bag record /topic_name
ros2 bag record /topic1 /topic2 /topic3
ros2 bag record -a
ros2 bag record -o custom_name /topic_name

기록된 데이터를 재생하기 위한 명령어는 다음과 같습니다. 공백 키를 누르면 일시정지 가능합니다.

ros2 bag info recording.db3
ros2 bag play recording.db3
ros2 bag play recording.db3 /specific_topic
ros2 bag play recording.db3 -r 2.0
ros2 bag play recording.db3 -l
ros2 bag play recording.db3 -s 10.0

데이터 조각화: 특정 구간 추출

특정 시간 범위의 데이터만 필요할 경우, ros2bagcut 도구를 사용하여 빠르게 자릅니다.

  1. 설치:
pip install ros2bagcut
  1. 사용 방법:
options:
  -h, --help
    show this help message and exit
  -i INPUT_BAG_FILE, --input_bag_file INPUT_BAG_FILE
    Input bag file name.
  -o OUTPUT_BAG_FILE, --output_bag_file OUTPUT_BAG_FILE
    Output bag file name.
  -st STARTTIME STARTTIME STARTTIME STARTTIME STARTTIME STARTTIME, \
      --starttime STARTTIME STARTTIME STARTTIME STARTTIME STARTTIME STARTTIME
    Cut start time (year month day hour minute second).
    Default: beginning of the bag.
  -et ENDTIME ENDTIME ENDTIME ENDTIME ENDTIME ENDTIME, \
      --endtime ENDTIME ENDTIME ENDTIME ENDTIME ENDTIME ENDTIME
    Cut end time (year month day hour minute second).
    Default: end of the bag.
  -tz TIMEZONE, --timezone TIMEZONE
    Time zone string (e.g., Asia/Shanghai).

자르고자 하는 시간대를 확인하려면 plotjuggler를 사용합니다.

ros2 run plotjuggler plotjuggler

실행 후 .yaml 파일을 불러오면 기록된 데이터의 타임스탬프를 시각적으로 확인할 수 있습니다. 타임스탬프를 실제 날짜로 변환하는 예시:

date -d "@1722589789.191" '+%Y %m %d %H %M %S'
# 출력: 2024 08 02 17 09 49

실제 자르기 명령어 예시:

ros2bagcut -i rosbag2_2024_07_23-08_39_57/rosbag2_2024_07_23-08_39_57_0.db3 \
           -o roscut \
           -st 2024 08 02 17 09 49 \
           -et 2024 08 02 17 10 49 \
           -tz Asia/Shanghai

PlotJuggler 설치 및 활용

Bag 파일의 시각적 분석을 위해 plotjuggler를 설치합니다.

sudo apt install ros-humble-plotjuggler-ros
ros2 run plotjuggler plotjuggler

실행 후 메뉴에서 Data 섹션의 Import 아이콘을 클릭해 .yaml 파일을 불러옵니다. 불러온 후 리스트에서 원하는 토픽을 마우스 왼쪽 버튼으로 드래그하여 그래프 영역에 추가하면 실시간 그래프가 표시됩니다.

두 변수 간의 관계를 확인하고 싶다면, Ctrl 키를 누른 상태에서 두 항목을 선택한 후 오른쪽 마우스 버튼으로 그래프 영역으로 드래그하면 상관관계 그래프가 생성됩니다.

태그: ros2 rosbag PlotJuggler data analysis topic visualization

6월 24일 17:37에 게시됨