장 개요
로봇 학습 데이터는 이미지, 관절 상태, 행동 명령, 언어 지시를 한 행에 모았다고 해서 자동으로 올바른 데이터가 되지 않는다. 이미지의 픽셀이 어느 3차원 광선을 뜻하는지, 관절 상태가 어느 시각의 것인지, 카메라가 어느 링크에 붙어 있는지, 시뮬레이션과 실물의 축 정의가 어떻게 다른지를 설명할 수 있어야 한다. 이 장에서는 공간 정합(spatial alignment)과 시간 정합(temporal alignment)을 하나의 데이터 계약으로 설계한다.
먼저 핀홀 카메라 모델과 내부·외부 파라미터를 유도한다. OpenUSD/Isaac Sim, ROS 2, OpenCV 사이의 좌표 프레임을 명시적으로 변환하고 TF2 트리를 구성한다. 50~100 Hz 관절 스트림과 30 fps 영상의 타임스탬프를 message_filters로 근사 동기화하고, 정책 학습용 기준 시각에 관절 상태를 보간한다. 이어 rosbag2와 MCAP으로 원본 메시지를 보존하고, Omniverse Replicator로 도메인 랜덤화(domain randomization)를 수행하며, Rerun으로 프레임 드롭·타임스탬프 역전·관절 이상치를 시각적으로 점검한다.
센서별 입력을 다루기 전 M14.02 카메라-LiDAR·IMU·엔코더·GNSS 정합에서 측정량·단위·장착점과 취득시각의 계약을 확인한다. 이 장의 카메라/TF 예제를 다른 센서에 확장할 때도 픽셀·각속도·지리좌표를 같은 XYZ로 읽지 않는다.
그림 4-1. 카메라 기하, TF2, 타임스탬프, 보간, 기록, 무결성 검사를 분리하면 어느 단계에서 오차가 생겼는지 추적할 수 있다.