4.5 rosbag2와 MCAP 원본 기록

4.5.1 왜 원본 메시지를 보존하는가

동기화 정책이나 보정 파라미터는 나중에 바뀐다. 원본 메시지와 timestamp가 있으면 다시 정렬할 수 있지만, 30 fps 배열로 이미 resample한 데이터만 남으면 원래 jitter와 누락을 복원할 수 없다.

Jazzy의 rosbag2는 메시지 기록·재생 계층이고 storage plugin을 선택할 수 있다. MCAP은 여러 channel과 schema, index를 담을 수 있는 컨테이너이며 ROS 2 storage plugin으로 사용할 수 있다.

sudo apt install ros-jazzy-rosbag2-storage-mcap
ros2 bag record -s mcap -o episode_0001 \
  /camera/color/image_raw /camera/color/camera_info \
  /joint_states /tf /tf_static /command /clock

기록 후:

ros2 bag info episode_0001
ros2 bag play episode_0001 --clock

예상 출력 예시

Storage id: mcap
Duration: 42.31s
/camera/color/image_raw: 1268 messages
/joint_states: 2115 messages

4.5.2 에피소드 메타데이터

bag 폴더 바깥에 다음을 함께 저장한다.

  • task prompt, 성공/실패, 종료 이유
  • 로봇/카메라 serial과 calibration hash
  • 소프트웨어 버전과 Git revision
  • QoS override와 record 명령
  • 시뮬레이션 seed와 randomization 분포
  • operator와 안전 이벤트

개인정보나 사람 얼굴이 포함될 수 있으면 수집 전에 보존 기간과 접근 권한을 정한다.

이 장의 예제 코드·설정 파일 (12)

이 장의 자가 점검·가상실습