본문으로 건너뛰기

선수 지식과 준비물

E4의 M20.03 에피소드·데이터 계약, M20.04 기록 변환·버전, M20.05 누락·정합 검사와 M21.02 관측·행동 시퀀스로 이어 읽는다. 좌표·시간이 맞는 기록이라도 split 누수·행동 의미·정규화·episode 경계는 따로 확인한다.

M12.01 영상·색공간과 M12.02 투영·왜곡을 익힌 뒤 M14.01 보정 프레임, M14.03 시간/보간, M14.06 오차·불확실성 기록과 이어 읽는다. 카메라/시간 기초를 배웠다는 이유로 M13 점군이나 M14의 다중모달·EKF 심화까지 이수한 것으로 간주하지 않는다.

TF·기록 도구의 기본 역할은 M05.05 tf2·RViz·rosbag2에서, 시간원·역행·메시지 나이의 구분은 M05.06에서 먼저 확인한다. M08.05의 관절 상태→TF 흐름과 연결하되, 같은 프레임을 별도 broadcaster가 중복 소유하지 않도록 한다.

기초 복귀: M03.03 측정 특성에서 센서별로 무엇을 직접 측정하는지, 측정 범위와 관측 실패 조건이 무엇인지 확인한다. M02.04 확률·공분산과 M02.06 오차 전파는 아래 정합 결과를 해석하는 준비다. 같은 timestamp라는 표기만으로 좌표계·노출 시점·시계 오프셋까지 일치했다고 간주하지 않는다. 로그를 읽을 때 데이터와 함께 프레임·단위·시간원을 기록한다.

  • 3차원 벡터, 행렬 곱, 동차 변환 행렬
  • Python 3.12, NumPy, C++17
  • Ubuntu 24.04 LTS, ROS 2 Jazzy Jalisco
  • 선택: OpenCV, message_filters, tf2_ros, rosbag2_storage_mcap, Rerun SDK, Isaac Sim

데이터 보존 원칙: 동기화·보간된 학습 데이터만 저장하지 않는다. 가능한 경우 원본 메시지와 원본 타임스탬프를 rosbag2에 보존하고, 파생 데이터가 어떤 코드·파라미터로 만들어졌는지 기록한다.

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

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